森狼藤野 2024-01-08 11:19 采纳率: 66.7%
浏览 4
已结题

类调用另一个类的成员函数·。第一种方法为啥行不同?


class person1
{
public:
     
    void fun1()
    {
        cout << "person1的函数调用";
    }

};

class person2
{
public:
    
    void fun2()
    {
        cout << "person2的函数调用";
    }
};

 
class show
{
     
public:
    person1 name;
     
    name.fun1();  
     
};
int main()
{
     
}

name.fun1(); //不能调用

 
class person1
{
public:
     
    void fun1()
    {
        cout << "person1的函数调用";
    }

};

class person2
{
public:
    
    void fun2()
    {
        cout << "person2的函数调用";
    }
};

 
class show
{
     
public:
    person1 name;
     void test()
         {
    name.fun1();  
     }
};
int main()
{
     
}

name.fun1(); //能调用

  • 写回答

3条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2024-01-08 14:22
    关注

    【以下回答由 GPT 生成】

    解决方案

    问题出在在第一个例子中,我们直接在类的定义中调用了成员函数,这是不合法的C++语法。正确的做法是在类的外部定义一个函数或者在类内定义一个函数来调用。

    所以第一个例子需要修改为:

    class person1
    {
    public:
    
        void fun1()
        {
            cout << "person1的函数调用";
        }
    
    };
    
    class person2
    {
    public:
    
        void fun2()
        {
            cout << "person2的函数调用";
        }
    };
    
    class show
    {
    public:
        person1 name;
    
        void callFun1()  // 在类内定义一个函数来调用
        {
            name.fun1();  
        }
    };
    
    int main()
    {
    
    }
    

    然后在main函数中调用show类的callFun1函数。

    第二个例子的代码已经是正确的,通过在类内定义函数来调用成员函数,所以可以成功调用。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月16日
  • 已采纳回答 1月8日
  • 创建了问题 1月8日

悬赏问题

  • ¥30 Unity 实现扫描效果
  • ¥15 HbuilderX检测不到安卓模拟器
  • ¥15 这个main已经在filename.obj中定义是什么错 C语言
  • ¥15 关于#linux#的问题:exsi8.0系统 怎么更改web访问端口,不用80、443
  • ¥15 使用elementor设计样式
  • ¥15 谁能提供一个中文版的推销咨询网站连接?
  • ¥15 springboot项目程序启动报错
  • ¥15 grlb复位后关闭硬限位开关,移动中仍然会触发停止。
  • ¥20 微信平台收付通的相关问题
  • ¥15 grbl复位后,移动会触发报警Alarm 1