关键词叠加是啥意思,

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关键词叠加是啥意思,相关的知识,希望对你有一定的参考价值。

关键词叠加

英文:Keyword stacking 具体是指网页中过分重复使用关键词。最基本的叠加方式是:在网页中访客看不见html文件中的一些地方,如标题标签、描述标签、图片的替代文字,甚至是网页页脚部分等重复放入大量关键词。比如:

网站编辑 网站编辑 网站编辑 网站编辑 ……网站编辑

把上面的这些词语放到网页用户难发觉的地方,其目的就是让搜索引擎看见,“认识”这个网页的主题是“网站编辑”,从而试图让搜索引擎给予此页在这个关键词搜索中以有利排名。

这是一种典型的SEO作弊行为,搜索引擎判断这种作弊行为的算法已经相当成熟,所以,一旦网页上出现关键词叠加现象,就算不剔除这类网页,也不可能给它们期待的排名。

所以,关键词的优化要切忌避免关键词叠加或堆积,把握好关键词的密度。
参考技术A 关键词叠加,英文:Keyword stacking 指为了增加关键词密度,在网页上大量重复关键词的行为。

关键词叠加是SEO初学者最常犯的错误,他们一般在标题标签、描述标签、关键词标签、图片的ALT-代替属性中重复放入大量关键词。有时,他们在网页页脚部分摆放上几十个关键词。

关键词叠加是一种典型的SEO作弊行为,搜索引擎判断这种作弊行为的算法已经相当成熟,所以,一旦网页上出现关键词叠加现象,一般整个网站会被搜索引擎封掉。很多网站不被搜索引擎收录,往往也是这个原因。
参考技术B Keyword stacking

覆盖方法时 virtual 关键字是啥意思?

【中文标题】覆盖方法时 virtual 关键字是啥意思?【英文标题】:What does the virtual keyword mean when overriding a method?覆盖方法时 virtual 关键字是什么意思? 【发布时间】:2011-06-18 16:31:10 【问题描述】:

virtual 关键字在重写方法时有什么作用?我没有使用它,一切正常。

每个编译器在这方面的行为是否相同?

我应该使用它还是不使用它?

【问题讨论】:

C++ Virtual/Pure Virtual Explained 的可能重复项 @Harald:不。不同的主题。 但我问的是该关键字的用法。与抽象虚拟方法无关。 派生类中的虚拟关键字是可选的,但最好跳过它。否则,如果您有很多派生类,并且想要将继承的方法之一设为虚拟,则必须在所有这些派生类中为该方法添加 virtual 关键字。 【参考方案1】:

没有它,您无法覆盖成员函数。

你只能隐藏一个。

struct Base 
   void foo() 
;

struct Derived : Base 
   void foo() 
;

Derived::foo覆盖Base::foo;它只是隐藏它,因为它具有相同的名称,如下所示:

Derived d;
d.foo();

调用Derived::foo

virtual 启用多态性,以便您实际上覆盖函数:

struct Base 
   virtual void foo() 
;

struct Derived : Base 
   virtual void foo()  // * second `virtual` is optional, but clearest
;

Derived d;
Base& b = d;
b.foo();

这会调用Derived::foo,因为它现在覆盖 Base::foo——你的对象是多态的。

(由于the slicing problem,您还必须为此使用引用或指针。)


Derived::foo 不需要重复 virtual 关键字,因为 Base::foo 已经使用了它。这是由标准保证的,您可以依赖它。不过,为了清楚起见,有些人认为最好保留这一点。

【讨论】:

我知道在声明可以被覆盖的方法时 virtual 是必要的。我问过在覆盖方法时使用这个关键字,而不是声明。 @Miro:我不关注。您通过声明另一个覆盖它的函数来覆盖它。不管怎样,至少我的最后一段回答了你的问题。【参考方案2】:

基类中的virtual 方法将通过层次结构级联,使每个具有相同签名的子类方法也virtual

class Base
public:
  virtual void foo()
;

class Derived1 : public Base
public:
  virtual void foo() // fine, but 'virtual' is no needed
;

class Derived2 : public Base
public:
  void foo() // also fine, implicitly 'virtual'
;

如果仅用于文档目的,我建议您编写 virtual

【讨论】:

【参考方案3】:

当一个函数是虚拟的时,它在整个层次结构中都保持虚拟,无论您是否每次都明确指定它是虚拟的。覆盖方法时,使用 virtual 以更明确 - 没有其他区别:)

class A

    virtual void f() 
    
      /*...*/
    ;
;

class B:public A;

    virtual void f()  //same as just void f()
    
        /*...*/
    ;
;

【讨论】:

【参考方案4】:

Extending on Light Races answer,也许这会帮助一些人看看它在做什么。

struct Base 
public:
    void foo() 
        printf_s("Base::foo\n");
    
;

struct Derived : Base 
    void foo() 
        printf_s("Derived::foo\n");
    
;

struct BaseVirtual 
public:
    virtual void foo() 
        printf_s("BaseVirtual::foo\n");
    
;

struct DerivedVirtual : BaseVirtual 
    virtual void foo() 
        printf_s("DerivedVirtual::foo\n");
     
;

Derived d;
d.foo(); // Outputs: Derived::foo

Base& b = d;
b.foo(); // Outputs: Base::foo

DerivedVirtual d2;
d2.foo(); // Outputs: DerivedVirtual::foo

BaseVirtual& b2 = d2;
b2.foo(); // Outputs: DerivedVirtual::foo

【讨论】:

以上是关于关键词叠加是啥意思,的主要内容,如果未能解决你的问题,请参考以下文章

C++中的restrict关键字是啥意思?

c#中的_Default关键字是啥意思

OCaml 中的“and”关键字是啥意思?

覆盖方法时 virtual 关键字是啥意思?

“__block”关键字是啥意思?

c#中 new 这个关键字是啥意思