随笔分类 - C++
C++的世界,C++独享
摘要:5.运算符重载5.1 在类外定义的运算符重载函数C++为运算符重载提供了一种方法,即在运行运算符重载时,必须定义一个运算符重载函数,其名字为operator,后随一个要重载的运算符。例如,要重载"+"号,应该写一个名字为operator的函数,其他的运算符也是如此...
阅读全文
摘要:4.5 基类与派生类对象之间的赋值兼容关系 在一定条件下,不同类型的数据之间可以进行类型转换,例如可以将整型数据赋给双精度型变量。 在赋值之前,先把整型数据转换为双精度型数据,然后再把它双精度型变量。这种不同类型之间的自动转换,称为赋值兼容。在基类和派生类对象之间也存在有赋值兼容关系,基类和派生类对
阅读全文
摘要:4.4.3 虚基类1.为什么要引入虚基类 如果一个类有多个直接基类,而这些直接基类又有一个共同的基类,则在最底层的派生类中会保留这个间接的共同基类数据成员的多分同名成员。在访问这些同名的成员时,必须在派生类对象后增加直接基类名,使其惟一地标识一个成员,以免产生二义性。 //例 4.15 虚基类的引例
阅读全文
摘要:4.1 多重继承单继承或单基派生:派生类只有一个基类;多继承或多基派生:派生类有两个或两个以上的基类。4.4.1 多重继承派生类的声明 在C++中,声明具有两个以上的派生类与声明单机派生类的形式相似,只需将要继承的多个基类用逗号分分隔即可,...
阅读全文
摘要:4.3 调整基类成员在派生类中的访问属性的其他方法 4.3.1 同名函数 在定义派生类的时候,C++语言允许在派生类中说明的成员与基类中的成员名字相同,也就是 说,派生类可以重新说明与基类成员同名的成员。如果在派生类中定义了与基类成员同名的 成员,则称派生...
阅读全文
摘要:4.2 派生类的构造函数和析构函数4.2.1 派生类构造函数和析构函数的执行顺序 通常情况下,当创建派生类对象时,首先执行基类的构造函数,随后再执行派生类的构造函数;当撤销派生类对象时,则先执行派生类的派生类的析构函数,随后再执行基类的析构函数。 //例4.5 派生类的构造函数和析构函的执行顺序 #
阅读全文
摘要:4.1 派生类的声明 继承实例如下: class Person{ //声明基类Person public: void print() { coutusing namespace std;class Base{ ...
阅读全文
摘要:3.8 友元:友元函数和友元类友元函数 :既可以是不属于任何类的非成员函数,也可以是另一个类的成员函数,统称为友元函数。友元函数不是当前类的成员函数,而是独立于类的外部函数,但它可以访问该类所有的成员,包括私有成员、保护成员和公有成员。在类中声明友元函...
阅读全文
摘要:3.7.1 静态数据成员对象是类的一个实例,每个对象都具有自己的数据成员。例如,学生类张三或李四都具有自己的学号,姓名和平均成绩。在实际使用时,常常还需要一些其他的数据项,比如学生人数、总成绩、平均成绩。但是如果把这些数据项作为普通的数据成员来处理,将会产生错误。下面通过例子来说明: 例3.28 静
阅读全文
摘要:3.5.1 使用对象作为函数参数,其方法与传递基本类型的变量相同//例3.21 使用对象作为函数参数#includeusing namespace std;class A{ public: A(int n) { t = n; } voi...
阅读全文
摘要:常类型:使用类型修饰符const说明的类型,常类型的变量或对象成员的值在程序运行期间是不可改变的。3.10.1 常引用 如果在说明引用时用const修饰,则被说明的引用为常引用。如果用常引用做形参,便不会产生对实参 的不希望的更改。常引用的说明形式如下: const 类型 &引用名; 例...
阅读全文
摘要:3.6.1 对象赋值语句如同基本类型赋值语句一样,同类型的对象之间也可以进行赋值,即一个对象的值可以赋给另一个对象。这里所指的对象的赋值是指对其中的数据成员赋值,而不对成员函数赋值。例如:A和B是同一类的两个对象,那么下述对象赋值语句 B=A; 就能把对象A的数据成员的值逐位复制给对象...
阅读全文
摘要:在类中定义的数据成员一般都是基本数据类型或服复合数据类型。但是还可以根据需要使用 其他类的对象作为正在声明的数据成员。复杂的对象还可以有比较简单的对象一某种方式组合 而成,复杂对象和组成它的简单对象之间的关系是组合关系。 在一个类中内嵌另一个类的对象作为数据成员,称为类的组合。该内嵌对...
阅读全文
摘要:析构函数的特点: 1、析构函数与类名相同,但它前面必须加上波浪号~ 2、析构函数不返回任何值,在定义析构函数时,是不能说明它的类型的,甚至说明void类型也不能 3、析构函数没有参数,因此不能被重载。一个类可以有多个构造函数,但是只能有一个析构函数 4、撤销对象时,编译系统会自动调用析构函数//例...
阅读全文
摘要:构造函数的重载的判断条件是:参数的个数或者类型不同,其他要保持一样举例说明:方式一:在类中声明重载构造函数,在类外定义//第一种方法: #includeusing namespace std;class Date{ public: Date(); //声明一个无参数的构造...
阅读全文
摘要:1、在声明类时,对数据成员的初始化工作一般在构造函数中用赋值语句进行。 例如:class Complex{ private: double real; double imag; public: Complex(double r,double i) ...
阅读全文
摘要:注意:如果类中用户没有定义构造函数,系统会自动提供一个函数体为空的默认构造函数。 但是,只要类中定义了一个构造函数(不一定无参构造函数),系统将不再给它提供 默认的构造函数。因为,默认的构造函数被类中的提供的构造函数给覆盖了。然而, 对象一建立,就需要初始化,所以,用户在程序中此时...
阅读全文
摘要:(一)类与对象的关系: c++把类的变量叫做类的对象,对象也称类的实例 (二)对象的定义: 1、在声明类的同时,直接定义对象,即在声明类的右花括号“}”后,直接写出 属于该类的对象名表。例如:class Point{ public: void...
阅读全文
摘要:对象的初始化和构造函数 构造函数:是一种特殊的成员函数,它主要用于为对象分配空间,进行初始化。构造函数 的名字必须与类名相同,它不要用户来调用,而是在建立对象时自动执行的 形式一: 类名 对象名(实参表); 例如:class Complex{ priva...
阅读全文
摘要:1、成员函数的第一种定义方式:在类声明中只给出成员函数的原型,而将成员函数的定义 放在类的外部。 返回值类型 类名::成员函数名(参数表) { 函数体 } class Point{ public: void setpoint(int,int); ...
阅读全文
浙公网安备 33010602011771号