c++成员函数的调用问题
成员函数必须由对象来调用还是可以直接调用。比如对象a,成员函数can(),(都在一个类中)在调用can()函数的时候前面不加任何对象直接调用can();这样可以吗...
成员函数必须由对象来调用 还是可以直接调用。比如对象a,成员函数can(),(都在一个类中)
在调用can()函数的时候前面不加任何对象直接调用can(); 这样可以吗 展开
在调用can()函数的时候前面不加任何对象直接调用can(); 这样可以吗 展开
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();
}
以上三种方法都正确,希望对你有用.
以上回答你满意么?
#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();
}
以上三种方法都正确,希望对你有用.
以上回答你满意么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询