C++ 新操作员->;有无 客观的
尝试了解实例化派生类对象的行为差异 我的作品C++ 新操作员->;有无 客观的,c++,oop,new-operator,C++,Oop,New Operator,尝试了解实例化派生类对象的行为差异 我的作品 创建了一个类“person” 向“person”类添加了一个虚拟方法,该方法将值设置为变量name 定义了从基类“person”派生的类“employee” 向“employee”类添加了一个方法,该方法将值设置为最初在基类中定义的变量name,但添加了“さん" 后面加后缀 创建不同的类型或启动,并测试输出之间的差异 定义类 我创建了一个基类“person”和一个派生类“employee”,如下所示 人 class person { protecte
class person
{
protected:
string name;
public:
person();
~person();
virtual void setName(string myName)
{
name = myName;
}
};
员工
class employee : public person
{
public:
employee();
~employee();
void setName(string myName)
{
name = myName+"さん";
}
};
主要
问题:
我了解新人、其他人和其他人的行为
我不明白为什么extraPerson1和extraPerson2行为不同,尽管两者似乎有相似的启动
请帮助!与
person extraPerson1 = employee();
您可以将employee
对象转换为person
对象。对象extraPerson1
是person
对象,而不是employee
对象。当您调用其setName
函数时,您正在调用person::setName
多态性和虚函数只有在有指针或引用时才起作用。
person extraPerson1 = employee();
您可以将employee
对象转换为person
对象。对象extraPerson1
是person
对象,而不是employee
对象。当您调用其setName
函数时,您正在调用person::setName
多态性和虚拟函数只有在有指针或引用时才起作用
person extraPerson1 = employee();