C++ C++;私人职能成员
我了解到,如果我在没有access修饰符的类中声明数据成员或函数成员,编译器会将它们视为私有成员,现在我有一个名为C++ C++;私人职能成员,c++,C++,我了解到,如果我在没有access修饰符的类中声明数据成员或函数成员,编译器会将它们视为私有成员,现在我有一个名为showNum的简单类,当我运行程序时,它会给我一个与我输入的值不同的值! 这是因为set\u value函数是私有的,无法从对象num1访问它,这就是为什么它会给我另一个值 类showNum和main函数的代码为: class showNum { int a; void set_value(int num) { num=5;
showNum
的简单类,当我运行程序时,它会给我一个与我输入的值不同的值!
这是因为set\u 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();
}
class showNum
{
INTA;
无效集_值(int num)
{
num=5;
a=num;
}
公众:
void show_值()
{cout您从未调用set_value(),因此当您调用show_value()时,您的成员a
未初始化,因此a
将未定义您可以这样做:
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();
}
class showNum
{
INTA;
公众://change-hear
无效集_值(int num)
{
//换听力
a=num;
}
void show_值()
{您可以在哪里设置值?您从未调用set\u value
,因此a
从未设置为任何值。您希望它输出什么?您还缺少main
的返回类型。当我调用set\u value函数时,编译器给我一个错误:error:void showNum::set\u value(int)”“是吗private@mouad_raizada当然,您会得到一个编译器错误,因为set\u value()
是private
。感谢您的回答,我对我的答案感到困惑,现在在main中调用set\u value函数时是clearcompiler错误,因为它是private的