C++ 构造器问题 初始化对象的时候就赋值


#include<iostream>

using namespace std;

class xiuzhenjie{

        public:// 构造函数
        xiuzhenjie(int a, int b){
        this->alter = a;
        this->geschlecht =b;
        }
        // 构造函数
        xiuzhenjie(int a){
        this->alter = a;
        }


        public:
        int alter;
        int geschlecht;
};

int main()
{

xiuzhenjie tianyuanyu(13,1); // 1
xiuzhenjie* daluotianyu = new xiuzhenjie(14,1);
xiuzhenjie* daxiahuangchao = new xiuzhenjie(13);
int talent1 = 0;
int talent2 = 0;
talent1 = (daluotianyu->alter)*(daluotianyu->geschlecht);
talent2 = (tianyuanyu->alter)*(tianyuanyu->geschlecht);

cout<<"此人的资质:"<< talent1 << endl;
cout<<"此人的资质:"<< talent2 << endl;
return 0;
        }


xiuzhenjie tianyuanyu(13,1); // 1

什么样的构造器才能实现这样直接赋值?

引用类型初始化,好像必须new去分配空间,

额,你所说只是构造的形式,你有相应的构造就可以选择初始化时的形式,至于赋值,对象赋值得重载运算符,初始化时即使是写成赋值形式,调用的依然是拷贝构造

 xiuzhenjie(int a, int b){
        this->alter = a;
        this->geschlecht =b;
        } 

这个函数是你写的构造函数,有这个,
就能,直接使用下面语句赋值呀
xiuzhenjie tianyuanyu(13,1); // 1