C++类中的类成员变量怎么调用带参数的构造函数来初始化?

如题所述

要调用带参的构造函数,必须这样做:
#include "stdafx.h"
class A
{
public:
A(){ax = 0;};
A(int a){ax = a;};
int ax;
};

class B
{
public:
/******************/
B(int b) : bx(b) //这样调用
{
}

B() : bx(0) //这样也行
{
}
/*****************/
void print()
{
printf("%d", bx.ax);
}
/*************************/
A bx; //这样声明
/**************************/
};

int main(int argc, char* argv[])
{
/*********************/
B b; //使用B的默认构造函数
B bb(10); //使用B的带参构造函数
/*********************/
b.print();
bb.print();

return 0;
}
温馨提示:内容为网友见解,仅供参考
无其他回答

C++ 类中的类成员变量怎么调用带参数的构造函数来初始化?
要调用带参的构造函数,必须这样做:include "stdafx.h"class A { public:A(){ax = 0;};A(int a){ax = a;};int ax;};class B { public:\/***\/ B(int b) : bx(b) \/\/这样调用 { } B() : bx(0) \/\/这样也行 { } \/***\/ void print(){ printf("%d", bx.ax)...

C++中类成员初始化方式
初始化类成员有三种方式:初始化列表、构造函数初始化、声明时初始化(C++11后支持)。初始化列表以冒号开始,后面列出需要赋值的成员变量及值。使用初始化列表的情况包括:成员变量为引用类型、数据成员为常量、父类构造函数有参数或成员变量所属类型构造函数有参数。在C++98中,就地声明允许在类声明中使用...

c++里使用动态分配内存,如何调用带参数的构造函数
你可以输入以后再拷贝到数组里去(operator=),因为定义对象数组时就必须初始化每个对象,所以 student = new Student[n];这一句实际上已经调用了每个对象的无参数构造函数,如果你没有提供一个无参数的构造函数那么这个句子会报错 另一种方法是 Student** student;student = new Student*[n];\/\/ 输入...

C++里如果类中有字符串数组为成员变量应该怎么初始化
你的构造函数写的不好,不完备,建议:A(char *a, int iLen){ memset(abc, 0x0, sizeof(abc));if (NULL != a && 0 < iLen){ if (sizeof(abc) < iLen){ iLen = sizeof(abc);} memcpy(abc, a, iLen);} }

C++构造函数如何进行初始化
对非内置类型成员变量,为了避免两次构造,推荐使用类构造函数初始化列表。但有的时候必须用带有初始化列表的构造函数:1.成员类型是没有默认构造函数的类。若没有提供显示初始化式,则编译器隐式使用成员类型的默认构造函数,若类没有默认构造函数,则编译器尝试使用默认构造函数将会失败。2.const成员或...

C++ 类的初始化
当C++类被实例化时,初始化过程启动,首先通过调用构造函数来初始化对象。构造函数在对象生命周期的开始执行,而当对象不再使用时,析构函数则负责释放资源。在构造函数开始之前,会先对类的成员变量进行初始化。成员变量的声明顺序决定了它们的初始化顺序,无论它们在初始化列表中的位置如何。这种初始化...

C++类里用数组做成员变量怎么实现
直接定义数组,,,初始化的时候,new ~~~

C++中类对象数组的初始化
1、当你定义了构造函数以后,默认的构造函数就不起作用了。所以你得类里边就没有默认的构造函数,即:没有没有参数的构造函数。所以Student std[5]; 是错误的。2、所有构造函数都是在定义时候就调用,定义以后的调用就不叫初始化了,而是赋值。所以std[i](name[20],num,chinese,maths,english); ...

c++中什么时候调用构造函数和析构函数
A a ; 定义一个对象a的时候, 就调用构造函数,默认构造函数都是无参数的 ,构造函数就相当给对象a初始化而已,就相当于c语言中 int a = 3 初始化a的值而已,以为你在类中是不能直接给private中的类成员赋值的,所以就靠构造函数,不过要注意有参构造和无参构造,默认都是无参的,比如你A ...

c++类内构造函数指针初始化?
构造函数初始化列表,是C++中用于在构造函数内部初始化成员变量的工具。在这里,你可以直接指定每个成员变量的初始化值,无需在函数体内部调用构造函数。如果省略初始化列表,成员将默认使用其默认构造函数初始化。对于基本类型如指针,在初始化列表或构造函数体内赋值并无实质区别。然而,当成员变量是类类型时...

相似回答