我了解到,如果我在没有访问修饰符的类中声明数据成员或函数成员,编译器会将它们视为私有成员,现在我有一个名为showNum
的简单类,当我运行程序时,它给了我一个与我输入的价值不同!
是因为set_value
函数是私有的,并且无法从对象num1
访问它,这就是为什么它给了我另一个值?
班级showNum
和main
功能的代码为:
class showNum
{
int a;
void set_value(int num)
{
num=5;
a=num;
}
public:
void show_value()
{cout<<a;}
};
void main()
{
showNum num1;
num1.show_value();
}
答案 0 :(得分:2)
您永远不会调用set_value(),因此当您调用show_value()时,您的成员a
未初始化,因此a
将被取消定义
答案 1 :(得分:0)
class showNum
{
int a;
public: //change hear
void set_value(int num)
{
//change hear
a=num;
}
void show_value()
{cout<<a;}
};
main()
{
showNum num1;
num1.set_value(5);//change hear
num1.show_value();
}