c++基础语法之构造函数和初始化表

笔者刚系统的重学了c++的语法,看到构造函数和初始化表这块,发现这块语法有点复杂且很杂,怕以后忘记,于是写下此篇,以后回忆之用。

c++构造函数

3、构造函数(constructor)

Class/struct  类名 {

//构造函数

类名(形参表) {函数体}

};

1)构造函数名字和类名相同,没有返回类型

2)构造函数在对象被创建时自动被调用

3)构造函数主要负责对象的初始化,即初始化成员变量

4)构造函数在每个对象的生命周期,一定会被自动调用,但只会被调用一次

Class  A {

A(void) {.....} //构造函数

};

Int   main (void) {

A  a; //自动调用构造函数

}

构造函数重载(重载其本质就是编译器的改变函数的名字)

构造函数可以通过参数表的不同形成重载,在创建对象时通过构造实参的类型选择匹配,表示不同对象的创建方式。

2、缺省构造函数(默认构造函数/无参构造函数)

1)如果一个类没有定义任何构造函数,编译器会提供一个缺省的无参构造函数

如果定义了构造函数,无论是否有参数,编译器都不会再提供缺省的无参构造函数

2)对于类中的基本类型成员变量,不做初始化

3)对于类 类型的成员变量,调用相应的无参构造函数来初始化

3、类型转换构造函数(单参构造函数)

Class  目标类型 {

目标类型(源类型) {......}

};

可以接收单个源类型对象实参的构造函数,支持从源类型到目标类型的隐式转换

explicit关键字:用于修饰类型转换的构造函数,强制的要求这种转换必须显示的进行

原文地址:https://www.cnblogs.com/yxzz/p/9597213.html

时间: 2024-11-08 04:53:33

c++基础语法之构造函数和初始化表的相关文章

构造函数的初始化表

1. 如果类存在继承关系,那么派生类中必须在初始化列表中调用基类的构造函数: class A {… A(int x); // A的构造函数 }; class B : public A {… B(int x, int y); // B的构造函数 }; B::B(int x, int y): A(x) // 在初始化表里调用A的构造函数 { … } 2. const数据成员必须在初始化列表中进行初始化.因为const常量是属于对象的常量,而不是整个类的常量,对于每个对象,常量的值是不同的,在初始化列

7月14日:JS的基础语法

首先,是最近的课程安排: JS的基础语法→BOM→DOM→DOM样式表→JS事件→JS表单→正则表达式: 以下为今天的学习内容: 一.JS的介绍 JS是一种弱类型的解释语言,它用var来定义变量.JS要在网页环境中运行,而Java可以在任何平台使用 二.JS的原始数据类型 undefined:未定义类型和值,无返回值 null:表示不存在的对象 boolean:只有2个值true和false number:数字型,可表示32位的整数和64位的浮点数 string:字符串类型 三.类型的转换 Bo

C++学习8 构造函数的参数初始化表

构造函数是一种特殊的成员函数,在创建对象时自动执行,主要用来进行初始化工作,例如对 private 属性的成员变量赋值. 对成员变量的初始化,除了在构造函数的函数体中一一赋值,还可以采用参数初始化表.请看下面的代码: class Student{ private: char *name; int age; float score; public: Student(char *, int, float); void say(); }; //在构造函数中采用参数初始化表 Student::Stude

openresty开发系列15--lua基础语法4表table和运算符

lua中的表table 一)table (表)Table 类型实现了一种抽象的"关联数组".即可用作数组,也可以用作map.lua中没有数组和map,都是用table这个类型 --数组java   int[] intArr = new int[]{1,2,3,4,5,6};intArr[0]intArr[1]--map----> key value HashMap mapmap.add(key,value) -- 初始化表mytable = {} -- 指定值mytable[1]

Python学习的个人笔记(基础语法)

Python学习的个人笔记 题外话: 我是一个大二的计算机系的学生,这份python学习个人笔记是趁寒假这一周在慕课网,w3cschool,还有借鉴了一些博客,资料整理出来的,用于自己方便的时候查阅,一开始保存在word上,代码不是很好看,于是决定复制到博客里面,可能有复制过程中出错的,或者我本身在理解方面有出错的地方,希望能得到指正,谢谢  后续的内容我会继续学习…… python下载地址  www.python.org Python 分为2.7和3.3两个版本,3.3有些库不兼容,因此用2.

C++语言学习(二)——C++对C语言基础语法的扩展

C++语言学习(二)--C++对C语言基础语法的扩展 C++是基于C语言扩展发展而来的面向对象的程序设计语言,本文将主要讨论C++语言基于C语言扩展的方面. 一.实用性增强 C语言中变量的定义必须在作用域开始的位置进行定义. #include <stdio.h> int main(int argc, char *argv[]) { int i;//定义变量 int j; //使用变量 for(i = 0; i < 10; i++) { for(j = 0; j < 10; j++)

Java基础知识二次学习-- 第二章 基础语法与递归补充

第二章 基础语法与递归补充   时间:2017年4月24日10:39:18 章节:02章_01节,02章_02节 视频长度:49:21 + 15:45 内容:标识符,关键字与数据类型 心得:由字母,下划线,$,数字组成,应该由字母,下划线$开头,同时应该避开java保留字符 变量是内存中的一小块区域,使用变量名来访问这块区域 执行过程中的内存管理(疑问:这里的内存和Jvm的一样吗?) code segment 存放代码 data segment 静态变量 字符串常量 stack 栈 局部变量 h

sql基础语法大全 转载过来的,出处忘了!

一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:/mssql7backup/MyNwind_1.dat'--- 开始 备份BACKUP DATABASE pubs TO testBack 4.说明:创建新表create

Swift基础语法(常量变量、数据类型、元组、可选、断言等)

Swift 是 iOS 和 OS X 应用开发的一门新语言.然而,如果你有 C 或者 Objective-C 开发经验的话,你会发现 Swift 的很多内容都是你熟悉的. Swift 的类型是在 C 和 Objective-C 的基础上提出的,Int是整型:Double和Float是浮点型:Bool是布尔型:String是字符串.Swift 还有两个有用的集合类型,Array和Dictionary,请参考集合类型. 就像 C 语言一样,Swift 使用变量来进行存储并通过变量名来关联值.在 Sw