c++成员函数的调用问题

成员函数必须由对象来调用还是可以直接调用。比如对象a,成员函数can(),(都在一个类中)在调用can()函数的时候前面不加任何对象直接调用can();这样可以吗... 成员函数必须由对象来调用 还是可以直接调用。比如对象a,成员函数can(),(都在一个类中)
在调用can()函数的时候前面不加任何对象直接调用can(); 这样可以吗
展开
 我来答
佐衫ling
2021-12-10 · 超过82用户采纳过TA的回答
知道小有建树答主
回答量:466
采纳率:100%
帮助的人:29.2万
展开全部
首先你要体会类的封装
你所用到的是封装后的类,只有在实例化对象之后,才能对类中的成员进行操作,你所说的直接用就不能用类来表示了,而是一般的函数,不能放在所定义的类当中。倘若要放在类当中就一定要实例化对象,否则封装就毫无意义了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
遂自荐
推荐于2016-05-13 · 超过17用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:35万
展开全部
首先你要体会类的封装。你所用到的是封装后的类,只有在实例化对象之后,才能对类中的成员进行操作,你所说的直接用就不能用类来表示了,而是一般的函数,不能放在所定义的类当中。倘若要放在类当中就一定要实例化对象,否则封装就毫无意义了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
黎约UNOX
2014-09-14 · TA获得超过178个赞
知道答主
回答量:124
采纳率:66%
帮助的人:51.3万
展开全部
你的problem不是静态的不能通过类名调用,只能创建b类通过对象调用,而且a类的void test()须是公有的.
#include <iostream>

using namespace std;

class A {
public :
void test(){
cout<<"test A";
}
static void stest(){
cout<<"static test A";
}
};
class B {
public: void test(){
a.test();
}
public : A a;
static A sa;
};
int main()
{
B b;
b.test();
b.a.test();
B::sa.stest();
}
以上三种方法都正确,希望对你有用.
以上回答你满意么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式