Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;私人职能成员_C++ - Fatal编程技术网

C++ C++;私人职能成员

C++ C++;私人职能成员,c++,C++,我了解到,如果我在没有access修饰符的类中声明数据成员或函数成员,编译器会将它们视为私有成员,现在我有一个名为showNum的简单类,当我运行程序时,它会给我一个与我输入的值不同的值! 这是因为set\u value函数是私有的,无法从对象num1访问它,这就是为什么它会给我另一个值 类showNum和main函数的代码为: class showNum { int a; void set_value(int num) { num=5;

我了解到,如果我在没有access修饰符的类中声明数据成员或函数成员,编译器会将它们视为私有成员,现在我有一个名为
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的