c++11 委托构造

c++11 委托构造

#define _CRT_SECURE_NO_WARNINGS

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

// 委托构造和继承构造函数类似,委托构造函数也是C++11中对C++的构造函数的一项改进,其目的也是为了减少程序员书写构造函数的时间。
// 如果一个类包含多个构造函数,C++ 11允许在一个构造函数中的定义中使用另一个构造函数,但这必须通过初始化列表进行操作,如下:
class Info
{
public:
    Info() : Info(1) { }    // 委托构造函数
    Info(int i) : Info(i, ‘a‘) { } // 既是目标构造函数,也是委托构造函数
    Info(char e): Info(1, e) { }

private:
    Info(int i, char e): type(i), name(e) { /* 其它初始化 */ } // 目标构造函数
    int  type;
    char name;
    // ...
};

void mytest()
{

    return;
}

int main()
{
    mytest();

    system("pause");
    return 0;
}
时间: 2024-10-08 18:40:58

c++11 委托构造的相关文章

78.委托构造

1 #include <iostream> 2 using namespace std; 3 4 class man 5 { 6 private: 7 int id; 8 char ch; 9 10 public: 11 //0个参数委托一个参数的构造函数,一个参数的委托两个参数的构造函数构造 12 man():man(1) 13 { 14 15 } 16 17 man(int i) : man(i, 'A') 18 { 19 20 } 21 22 man(char c) : man(1,c)

c++11 继承构造

c++11 继承构造 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> #include <vector> #include <map> // C++ 11允许派生类继承基类的构造函数(默认构造函数.复制构造函数.移动构造函数除外). /* 注意: 继承的构造函数只能初始化基类中的成员变量,不能初始化派生类的成员变量 如果基类的构造函数被声明为私有,或者派生类是从基类中

82.QT实现委托构造

1 #include "mainwindow.h" 2 #include <QApplication> 3 4 //创建一个MainWindow类 5 class myclass 6 { 7 private: 8 MainWindow *p; 9 //初始化内存 10 myclass(int i) 11 { 12 p = new MainWindow[i]; 13 } 14 15 public: 16 //设置显示 17 myclass(int i,int j):mycla

C++ 11

1 引子 去年年底,开始学习C++11新标准,也曾经发表过一篇关于C++11新增内容的帖子,由于CSDN很纠结的编辑页面,最终这篇帖子烂尾了,实在是汗颜. 最近,在公司分享了关于C++11的部分内容,借此机会,对于平时常用的,以及在Visual Studio 2012中支持的一些功能进行了总结,也趁此发表这篇帖子,算是对上次烂尾的一个补足吧. 2 C++发展史 说到C++ 11新标准,必然应该先了解一下C++的整个发展历程. 1979年,C++之父Bjarne Stroustrup开始扩展原有C

C++11初窥二: 继承构造函数和委派构造函数

分析了这两种用法,真想吐槽两句,这两个特性确实有实际需要,但客观来说,现有标准足够用,而且带来的代价也非常大,又给C++复杂的语法糖重重的抹了一笔!!! 一.继承构造函数 继承构造函数的引入原因:如果基类的构造函数很多,那么子类的构造函数想要实现同样多的构造接口,必须一一调用基类的构造函数,有点麻烦 于是乎:C++11引入继承构造函数 class _A { public: _A( int _InInt ) {;} _A( double _InDouble, int _InInt ) {;} _A

C++11 中值得关注的几大变化(网摘)

C++11 中值得关注的几大变化(详解) 原文出处:[陈皓 coolshell] 源文章来自前C++标准委员会的 Danny Kalev 的 The Biggest Changes in C++11 (and Why You Should Care),赖勇浩做了一个中文翻译在这里.所以,我就不翻译了,我在这里仅对文中提到的这些变化"追问为什么要引入这些变化"的一个探讨,只有知道为了什么,用在什么地方,我们才能真正学到这个知识.而以此你可以更深入地了解这些变化.所以,本文不是翻译.因为写

C#自学之路11

11.委托. 顾名思义,委托就是中间代理人意思.通俗来说,委托是一个可以引用方法的对象,当创建一个委托,也就创建了一个引用方法的对象,进而就可以调用那个方法,即委托可以调用它指向的方法. 其实,委托对象就是相当于函数指针.通过构造委托对象将要被调用的函数指针传递给委托对象.

C++11 中值得关注的几大变化(二)

委托构造 在以前的C++中,构造函数之间不能互相调用,所以,我们在写这些相似的构造函数里,我们会把相同的代码放到一个私有的成员函数中. class SomeType { private: int number; string name; SomeType( int i, string& s ) : number(i), name(s){} public: SomeType( )               : SomeType( 0, "invalid" ){} SomeTyp

c++ STL(七 c++11新特性速览)

1.nullptr nullptr 出现的目的是为了替代 NULL. 在某种意义上来说,传统 C++ 会把 NULL.0 视为同一种东西,这取决于编译器如何定义 NULL,有些编译器会将 NULL 定义为 ((void*)0),有些则会直接将其定义为 0. C++ 不允许直接将 void * 隐式转换到其他类型,但如果 NULL 被定义为 ((void*)0),那么当编译char *ch = NULL;时,NULL 只好被定义为 0. 而这依然会产生问题,将导致了 C++ 中重载特性会发生混乱,