这里有几件事需要澄清。
- 成员初始化列表用于初始化成员(与构造函数的目的大多相同)。在初始化列表中与成员函数无关。在这个例子
age(newAge)
中不是一个函数。它正在初始化age
变量。
class Man{
private:
int age;
string name;
public:
Man(int newAge):age(newAge),name("Jhon"){}
};`
- 您可以使用构造函数来初始化类的成员。
class Man{
private:
int age;
string name;
public:
Man(int newAge)
{
age = newAge;
name = "Jhone";
}
};
- 或者
init
,如果您在使用构造函数时遇到问题,也可以使用一种方法进行初始化。
class Man{
private:
int age;
string name;
public:
Man(){}
init(int newAge, string newName)
{
age = newAge;
name = newName;
}
};
- 如果只需要设置类中一个成员的值,则必须使用 setter 方法
类人{私人:整数年龄;字符串名称;
public:
Man(){}
setAge(newAge)
{
age = newAge;
}
setName(newName)
{
name = newNAme
}
};
编辑:
class Man{
private:
int age;
string name;
public:
Man(initAge, initName)
{
setValues(initAge, initName);
}
setValues(newAge, newName)
{
age = newAge;
name = newName;
}
};
int main()
{
Man goodMan(34,"Jhon");
goodMan.setValues(45,"Kevin");
}