怪异的多态性c ++?

use*_*939 3 c++ polymorphism

任何人都可以在这行代码中向我解释这个奇怪的一点吗?

ClassA :: ClassA(std :: string aName):name(aName)

显然,这是该类的声明

class ClassA
{
public:
    std::string name;
    ClassA(std::string aName);
};
Run Code Online (Sandbox Code Playgroud)

奇怪的代码行出现在它的cpp文件中

ClassA::ClassA(std::string aName) : name(aName)
Run Code Online (Sandbox Code Playgroud)

这不是多态吗?但那么,它是什么?

jua*_*nza 6

这是一个带有初始化列表的构造函数:

 ClassA::ClassA(std::string aName) 
 : name(aName) // constructor initialization list
 {
   // ctor body. name is already initialized here
 }
Run Code Online (Sandbox Code Playgroud)

这意味着数据成员name的初始化值为aName.

它与多态性正交.