一些代码如下:
class maven
{
private:
string username;
public:
maven(string un)
{
username = un;
}
};
class car : private maven
{
public:
/... do something .../
};
Run Code Online (Sandbox Code Playgroud)
然后我想在对象车中获得一个maven实例.但是如何用参数构造maven对象呢?我已经查找了规范和注释.
如果您的意思是如何构造对象的maven一部分car,请使用初始化列表:
class car : private maven
{
public:
// This way
car() : maven("foo") {
}
// Or this way
car(string username) : maven(username) {
}
};
Run Code Online (Sandbox Code Playgroud)
值得注意的是,这样你就不会得到一个maven实例car; 实际上,car它本身就是一个maven很深的内部(尽管它并没有告诉任何人).
除非您需要访问maven的protected成员出于某种原因,做事的方式是不是最好的.您可能想要考虑聚合类的对象maven,例如:
class car
{
private:
maven m_maven;
public:
// Initialize the member with a default parameter
car() : m_maven("foo") {
}
// Or this way
car(string username) : m_maven(username) {
}
};
Run Code Online (Sandbox Code Playgroud)
有关简短讨论,请参阅C++ FAQ lite的此页面.
| 归档时间: |
|
| 查看次数: |
90 次 |
| 最近记录: |