C ++私有函数成员

时间:2015-11-04 15:24:05

标签: c++

我了解到,如果我在没有访问修饰符的类中声明数据成员或函数成员,编译器会将它们视为私有成员,现在我有一个名为showNum的简单类,当我运行程序时,它给了我一个与我输入的价值不同! 是因为set_value函数是私有的,并且无法从对象num1访问它,这就是为什么它给了我另一个值?

班级showNummain功能的代码为:

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();
}

2 个答案:

答案 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();
}