当前位置:编程学习 > C/C++ >>

C++结构函数的疑惑

C++中,默认的结构函数无参数,无操作的。那么可以自己定义一个结构函数替代默认函数吗?可以的话应该怎么定义和赋值!求解!!!!
补充:我的意思是把默认结构函数删了,变成:如果系统要自动产生结构函数,就将我定义的结构函数代替系统的默认结构函数来产生,之后就按照我定义的结构函数来运算!!

答案:C++中,默认的构造函数是无参数,无操作的。

可以自己定义构造函数代替默认的构造函数。构造函数总是跟当前的类class或者结构struct同名,没有返回值。自己定义的构造函数可以带有任意参数,可以重载,一般应该在构造函数内部初始化类class或者结构struct的成员变量。一般地,自定义的无参数构造函数会取代系统默认的构造函数(当用户定义有无参数的构造函数时,编译器不在自动生成默认的构造函数)。

如下是一个类Test及其两个构造函数代码,其中第一个是无参数的,相当于默认构造函数;第二个带有一个参数,是第一个的重载:

class Test {

public:

    Test() { _t = 1; }

    Test(int t) { _t = t; }

private:

    int _t;

};

 

构造函数可以使用默认参数,还能在构造函数中用初始化列表代替对成员变量的赋值。下面的代码用某人参数和成员初始化列表重写了Test类:

class Test {

public:

    Test(int t=1) : _t(t) {}

private:

    int _t;

};

可以,只要求函数名和结构体名保持一致,无返回值,至于它的形参有几个,各是什么类型,完全由你说了算,用法和普通函数一样
楼上说的很清楚了


上一个:C++函数指针的问题
下一个:想找一些C++编程例题

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,