C++ 若定义类A:class A { public: A(); A(int x); … };

执行语句:A a(4), b[3], *p[2]; 则自动调用该类构造函数的次数是( B )。 A、6 B、4 C、3 D、1
怎么分析?

A a(4) //这一定义,调用类A的赋值构造函数A(int x) 一次
A b[3] //相当于定义了类型为A对象的数组,其元素个数为3,即调用三次类A的默认构造函数A()
A *p[2] //定义了一个类型为A*的数组,即指向A类对象的指针数组,并未产生类A的对象,不调用构造函数
满意请采纳。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-19
A a(4) 调用有参构造函数1次;
A b[3] 创建A数组,调用无参构造3次;
A *p[2] 不会调用构造函数。
一共调用构造函数4次。本回答被提问者和网友采纳
第2个回答  2017-06-20
4次是对的,创建A的时候还调用了一次默认的构造函数,尽管什么都不做,但是初始化工作是必须完成的。然后调用三次方法,会自动执行三次构造函数。
第3个回答  2014-06-21
p是指针数组,并没有赋值为实体,故调用0次,b数组含三个类,每个类调用一次,a为一个类,只调用一次,所以总共3+1=4次

C++ 若定义类A:class A { public: A(); A(int x); … };
A a(4) \/\/这一定义,调用类A的赋值构造函数A(int x) 一次 A b[3] \/\/相当于定义了类型为A对象的数组,其元素个数为3,即调用三次类A的默认构造函数A()A *p[2] \/\/定义了一个类型为A*的数组,即指向A类对象的指针数组,并未产生类A的对象,不调用构造函数 满意请采纳。

c++ classA{public:A(){cout<<"A"<<endl;}};
定义了一个变量名为 cB ,类型为 B(类) 的变量

C++中如果要用的类定义在使用之后,该怎样声明?
int i;A &a;public:B(int t, A &b):a(b){ i = t;} };class A { private:int i;int j;public:int geti() { return i;} A(int a, int b ){ i = a;j = b;} };int main() { A a(2,3);B(1,a);return 0;} ...

c++程序改错class A{ int a; public; A(int aa):a=aa{} };
两种改法:class A{ int a; public: A(int aa):a(aa){} };或者 class A{ int a; public: A(int aa){a=aa;} };

C++中类定义一个对象,如类名 对象名(数字);这是什么意思?
c++中的类除了具有封装的意味外,还有一点就是要使得定义的类可以像内置的类型(如int等)一样容易让人理解。例子:include <stdio.h> class A{ \/\/ 定义一个类A public:A(int a) : n(a){} \/\/ 类A的构造函数,参数为一个int型变量a private:int n; \/\/类的成员变量 };main(){ A a(...

关于C++的class中的public,protected,private;
要给“别人”使用的变量和函数就用public 只给自己使用的变量和函数就用private protected。。。这个只能说概念了。。。就是想要允许他的子类直接访问,就用protected。其实,你只需要记住,在设计过程中,先把所有的设置为private。然后再来慢慢分析是否需要修改为另外两种。例如你写一个类用来在屏幕上画一...

C++如何在A类中定义一个指针指向B类的一个成员函数?
直接定义即可。比如已有一个类class A, 再定义一个类class B,这样在B的定义中,就可以有一个A*类型的成员变量。示例代码一:class A{private: int a;public: int c;public: A(int i) { a = i; }; int Fun(int b) { return ((a * c) + b); };...

c++ class A {private int x ;public A(int i =0):x(0) {} A(int i...
输出0;cout<<j;输出3 改成一个能看的格式。include <iostream>using namespace std;class A{private:int x;public:A(int i=0):x(i){cout<<i;}};class B: public A{private:A a;public:B(int i,int j):A(i){cout<<j;}};int main(){A a(1);B b(2,3);return 0;} ...

...调用父类实现的函数吗?比如: class A{ public: void
第一种写法可以,不过得用最新的编译器(如: GCC 4.8、Visual C++ 2013)。这说明带返回值函数的函数调用除了可以位于函数体内,也还可以用于在非函数作用域初始化变量。你的第二种也是可以的。给你截个图:代码:结果:

6、已知有下面的三个类(使用C++语言描述): class A
obj是个指针,所以有obj.的都不对,应该找obj->的,排除B D。obj->b是个指针,因为obj是C*类型,C类里面的b成员是B*指针。所以obj->b.的都不对,应该找obj->b->的,排除C。所以选A。

相似回答