美文网首页C++2.0
C++ 类内构造函数调用另一个构造函数(委托构造函数)

C++ 类内构造函数调用另一个构造函数(委托构造函数)

作者: 百分之百的大风 | 来源:发表于2016-11-01 20:07 被阅读348次

我们在写类的构造函数的时候, 有时候一个构造函数可以完成另一个构造函数中的一部分内容, 这时候我们就希望调用另一个构造函数, 减少代码冗余.
C++11 中提供了委托构造函数帮助我们实现这一功能.

示例代码

#include <iostream>
#include <string>
#include <vector>

using std::string;
using std::vector;

class A {
public:
     A();
     A(string s);
     void foo();
protected:
     vector<string> v;
};
A::A() {
     v.push_back("This is A()");
}
A::A(string s) : A() {
     v.push_back("This is A(string s)");
     v.push_back(s);
}
void A::foo() {
     for (auto i : v) {
          cout << i << endl;
     }
}
int main() {
     A a("holo");
     a.foo();
     return 0;
}

结果

<pre>
This is A()
This is A(string s)
holo
</pre>
需要C++ 11 以上支持
delegating constructors are permitted only in C++11

参考

MSDN 构造函数 - 委托构造函数

相关文章

  • Boolan(博览网)——C++面向对象高级编程(下)(第五周作

    1. 构造函数和析构函数的调用过程 创建子类时,先调用父类的构造函数,再调用子类的构造函数。(构造由内而外) 销毁...

  • [C++之旅] 10 构造函数

    [C++之旅] 10 构造函数 构造函数的特点 构造函数在对象实例化时被自动调用 构造函数与类同名 构造函数没有返...

  • C++:面向对象基础

    构造函数 C++中有三种构造函数:默认构造函数,有参构造函数,拷贝构造函数 类对象的初始化 括号法//默认构造函数...

  • c++面向对象-构造、析构、初始化列表

    构造函数 构造函数是指创建对象的时候,会调用的函数。C++构造函数可以重载,指针或者对象均可调用构造函数。 析构函...

  • C++ 从入门到放弃 (Day-07)

    父类的构造函数 ◼ 子类的构造函数默认会调用父类的无参构造函数◼ 如果子类的构造函数显式地调用了父类的有参构造函数...

  • C++中的构造函数

    C++中构造函数有三类 无参构造函数 有参构造函数 代码形式 调用有参构造函数的三种方式:2.1) 括号法 2.2...

  • C++ 类内构造函数调用另一个构造函数(委托构造函数)

    我们在写类的构造函数的时候, 有时候一个构造函数可以完成另一个构造函数中的一部分内容, 这时候我们就希望调用另一...

  • Java基础篇

    父类子类构造函数 子类的构造函数会隐式调用父类的无参构造函数,子类若想调用父类的构造函数需在子类的构造函数的第一行...

  • JavaScript----类和继承

    类 构造函数Person中有一个构造函数constructor 调用构造函数的时候先调用constructor 继...

  • kotlin基础-类

    一、类组成 1.主构造函数 参数类型写法的三种情况: 2.次构造函数 次构造函数需要委托给主构造函数(直接委托或者...

网友评论

    本文标题:C++ 类内构造函数调用另一个构造函数(委托构造函数)

    本文链接:https://www.haomeiwen.com/subject/janmuttx.html