我知道成员初始化列表可以用于初始化已知大小的对象和变量。
但是,成员初始化列表实际上是如何处理指针的,特别是const char*
指针,如下面的MyClass
所示?它会简单地指向我传入的const char*
的内存位置吗?
class MyClass
{
public:
MyClass(const char* str): _str(str)
{
}
private:
const char* _str;
};
是的,它将简单地用str
的值初始化_str
,即使_str
指向str
所指向的相同内存地址。
我知道成员初始化列表可以用于初始化已知大小的对象和变量。
成员初始化列表可用于初始化成员和基本子对象。那些总是有已知的尺寸。
然而,成员初始化列表实际上是如何与指针一起工作的
所有指针都有已知的大小。
它会简单地指向我传入的const char*的内存位置吗?
是。这就是指针值。