类变量是这个类的对象

时间:2010-10-24 16:35:47

标签: c++ class-design

标题可能令人困惑,但我想知道是否有可能创建这样的程序:

class family_tree
{
private:
    string name, surname;
    family_tree father(); //fragile point!

public:
    family_tree();
    family_tree(string n, string sur");
    void print();
};

关于此类声明的标准是什么?编程的好习惯是什么呢?这很危险吗?

更有甚者,我不能使用第二个构造函数:

family_tree father("A","B");

compilator:

字符串常量之前的预期标识符

在字符串常量之前

预期','或'...'

我会感谢任何帮助

2 个答案:

答案 0 :(得分:1)

class family_tree
{
private:
    string name, surname;
    family_tree father(); //fragile point!

public:
    family_tree();
    family_tree(string n, string sur); // note that I removed a " here.
    void print();
};

这完全有效。你的脆弱点根本不脆弱 - 你有一个返回family_tree的函数,并且它在family_tree对象上被调用并不重要。无论语言是否允许您隐式地将const char * string文字强制转换为std :: string,我都记不住了。

答案 1 :(得分:0)

upss ..你是对的DeadMG我刚宣布了功能。在你之前有人(他删除了消息?)写道,我可以声明指向对象family_tree * father的指针;我认为这是我的问题的最佳解决方案