C++语言学习(五)——C++语言中的CV限定符错误一、CV限定符错误简介1、CV限定符简介CV限定符即cv-qualifier,C++语言中指const和volatile限定符。通常,C++语言中有两种情况不能使用CV限定符进行限定:A、非成员函数不能使用CV限定B、静态成员函数不能使用CV限定2、CV限定符错误信息简介C++语言中CV限定符错误信息如“cannothavecv-qualifie
分类:
编程语言 时间:
2018-07-15 17:41:02
阅读次数:
215
bind与普通函数的绑定 1. bind可以将用户提供的需要一个参数的函数转换为一个不需要参数的函数对象: 2.使用非成员函数,在使用前和使用时提供参数: bind与类的非静态成员函数的绑定 1.非静态函数成员的使用需要一个隐式的this参数 2.也可以将一个隐式的函数指针显式的传递给需要一个参数的 ...
分类:
编程语言 时间:
2018-06-16 20:03:24
阅读次数:
172
一、为什么引入友元机制? 总的来说就是为了让非成员函数即普通函数或其他类可以访问类的私有成员,这确实破坏了类的封装性和数据的隐蔽性,但为什么要这么做呢? (c++ primer:尽管友元被授予从外部访问类的私有部分的权限,但它并不与面向对象的编程思想相悖,相反,他们提高了公有接口的灵活性)。要理解这 ...
分类:
编程语言 时间:
2018-06-14 11:24:27
阅读次数:
191
一、定义为成员函数的运算符 1. 赋值、调用、下标、成员访问箭头运算符(=、()、[]、->) 2. 改变对象状态的运算符或者与给定类型密切相关的运算符(递增++、递减--、解引用*) 3. 复合赋值运算符(注:它也可以定义为非成员函数) 二、定义为非成员函数的运算符 1. 具有对称性的,即能转换任 ...
分类:
其他好文 时间:
2018-05-01 20:26:44
阅读次数:
192
1. 如果类包含内置或复合类型的成员,则该类不应该依赖于合成的默认构造函数,它应该定义自己的构造函数来初始化这些成员 2. 抑制由构造函数定义的隐式转换 explicit 关键字只能用于类内部的构造函数声明上,在类的定义体外部所做的定义不再重复它,当构造函数声明为 explicit 时,编译器将不再 ...
分类:
编程语言 时间:
2018-04-05 11:53:16
阅读次数:
188
1运算符重载的规则C++ 几乎可以重载全部的运算符,而且只能够重载C++中已经有的。不能重载的运算符:“.”、“.*”、“::”、“?:”重载之后运算符的优先级和结合性都不会改变。 重载的两种形式: 1 重载为类的非静态成员函数; 2 重载为非成员函数。 2双目运算符重载为成员函数 函数类型 ope ...
分类:
其他好文 时间:
2017-12-20 22:09:35
阅读次数:
210
错误场景:类中的重载函数 编译报错: 函数后面加了 const 就好了。 非静态成员函数后面加const(加到非成员函数或静态成员后面会产生编译错误), 表示成员函数隐含传入的this指针为 const指针, 决定了在该成员函数中,任意修改它所在的类的成员的操作都是不允许的(因为隐含了对this指针 ...
分类:
其他好文 时间:
2017-10-25 21:26:59
阅读次数:
180
// 回忆专用 1、c++ 放弃之路 【c++ primer, 5e】类的其他特性(待) 【c++ primer, 5e】访问控制与封装 【c++ primer, 5e】构造函数 & 拷贝、赋值和析构 【c++ primer, 5e】定义类相关的非成员函数 【c++ primer, 5e】设计Sal ...
分类:
其他好文 时间:
2017-09-21 21:08:08
阅读次数:
178
#include <iostream> using namespace std; class B { public: void foo() { cout << "B foo " << endl; } void pp() { cout << "B pp" << endl; } void Functio ...
分类:
其他好文 时间:
2017-07-10 19:13:13
阅读次数:
208
1. 在类内部定义的函数默觉得inline,内联函数应该在头文件里定义,由于其定义对编译器必须是可见的,以便编译器可以在调用点内联展开该函数的代码。此时,仅有函数原型是不够的。 2.assert 3.异常 4.因为流对象不能复制。因此不能存储在容器中;因为流不能复制。因此形參或返回类型也不能为流类型 ...
分类:
编程语言 时间:
2017-07-01 20:51:49
阅读次数:
214