C++构造函数,析构函数,不在main中写任何东西依然有输出的方式,证明this指针的存在,mutable关键字,cin的读取方式,友元函数
2014-08-20 09:30
459 查看
使用一次构造函数式构造一个对象,每次使用都是构建的不同的对象
构造的顺序与析构的相反
一个对象析构函数允许被多次调用但是这样做一般都出于特殊目的
对于一个函数,传入的参数是从左至右,那么析构是从右至左
析构函数总是无参的,不能被重载
在类中,两个函数形参一样,返回值一样,但是只要在最后加一个const(定义和实现都需要加,而对于默认参数,只需要在定义的地方写上即可),他们就能共存,编译器调用时会优先调用不含const的函数。只有const对象才能调用这样的const函数
在函数后加上const(承诺不会修改当前对象的数据)表示对当前对象只能做只读操作
形参是本类类型都要加引用,这叫拷贝构造函数,如果自己没写拷贝构造函数那么编译器会默认创建一个自己的拷贝构造函数,并完成所有成员的所有复制,如果自己没写构造函数则会生成一个无参构造函数,这个构造函数什么都不做,但是只要定义了构造函数,编译器则不会生成无参构造函数,析构函数也是一样,如果没定义编译器则自动生成,生成的析构函数什么都不做。
如何证明类中的函数都含有一个潜在的参数this
数据保护是以类为单位,不是以对象为单位
定义一个变量在一个常量函数中也可以改变!!!mutable int cur;
不在main中写任何东西也照样输出的原理
第一:全局变量
第二:使用类
当输入cin时,cin默认尝试两种读取方式
cin.operator>>(a) operator>>(cin,a);如果两种都行就会产生模糊,如果第一个不行,可以自己编写第二个函数来满足自己的输入要求
友元函数(是外面的函数,并不是成员函数),比如想调用类中的私有变量,但是不想给其他函数用到,只想给特定的函数调用,这样就可以将那个函数设置为友远函数
格式为:friend +标准函数定义 , 这样这个函数就能提取类的私有数据,友元函数的实现不需要加friend.
/article/4950118.html 关于友元的比较好的文章
构造的顺序与析构的相反
一个对象析构函数允许被多次调用但是这样做一般都出于特殊目的
对于一个函数,传入的参数是从左至右,那么析构是从右至左
析构函数总是无参的,不能被重载
在类中,两个函数形参一样,返回值一样,但是只要在最后加一个const(定义和实现都需要加,而对于默认参数,只需要在定义的地方写上即可),他们就能共存,编译器调用时会优先调用不含const的函数。只有const对象才能调用这样的const函数
在函数后加上const(承诺不会修改当前对象的数据)表示对当前对象只能做只读操作
形参是本类类型都要加引用,这叫拷贝构造函数,如果自己没写拷贝构造函数那么编译器会默认创建一个自己的拷贝构造函数,并完成所有成员的所有复制,如果自己没写构造函数则会生成一个无参构造函数,这个构造函数什么都不做,但是只要定义了构造函数,编译器则不会生成无参构造函数,析构函数也是一样,如果没定义编译器则自动生成,生成的析构函数什么都不做。
如何证明类中的函数都含有一个潜在的参数this
//建立一个const Person类型调用其中的非const函数input.虽然飘红,但是只要编译,会出现如下结果 const Person p1; p1.input(); //不能将“this”指针从“const Person”转换为“Person &”
数据保护是以类为单位,不是以对象为单位
定义一个变量在一个常量函数中也可以改变!!!mutable int cur;
不在main中写任何东西也照样输出的原理
第一:全局变量
#include<iostream> #include "Person.h" using namespace std; int func(){ cout << "hello" << endl; return 0; }; int x = func(); int main() {
第二:使用类
#include<iostream> #include "Person.h" using namespace std; class X { public: X(){ cout << "I am X" << endl; }; }; X x; int main() { return 0; }
当输入cin时,cin默认尝试两种读取方式
cin.operator>>(a) operator>>(cin,a);如果两种都行就会产生模糊,如果第一个不行,可以自己编写第二个函数来满足自己的输入要求
友元函数(是外面的函数,并不是成员函数),比如想调用类中的私有变量,但是不想给其他函数用到,只想给特定的函数调用,这样就可以将那个函数设置为友远函数
格式为:friend +标准函数定义 , 这样这个函数就能提取类的私有数据,友元函数的实现不需要加friend.
/article/4950118.html 关于友元的比较好的文章
相关文章推荐
- C++学习笔记(六)-- 类和对象 构造函数和析构函数 const成员函数 this指针 对象数组 堆栈管理变量
- C++文件头,命名空间,new和delete,内联函数,引用,函数重载,构造函数和析构函数,深拷贝和浅拷贝,explict,this指针
- C++第十周【任务2】定义一个名为CPerson的类,有以下私有成员:姓名、身份证号、性别和年龄,成员函数:构造函数、析构函数、输出信息的函数。
- 从零开始学C++之构造函数与析构函数(一):构造函数、析构函数、赋值与初始化、explicit关键字
- 类中的构造函数与析构函数、函数重载以及this指针的总结
- Effective C++ Item 09-绝不在构造函数和析构函数中调用virtual函数
- C++ 构造函数和析构函数与virtual关键字
- C++中的成员函数调用原理及this指针的传递方式
- 03.C++类、this指针、static静态变量、构造函数、析构函数
- C++基础7【难】 多态:实现原理 vptr指针 证明vptr存在 类的步长 纯虚函数:抽象类 案例 【面试题】
- 计算机程序设计(C++)第10周编程作业数据的抽象和封装——类(2)——构造函数、析构函数和指向对象的指针
- Spline样条函数 //C++关键字:operator // 重载函数 // 隐含的this指针 // 指针和const限定符
- .第04章 CORE C++_指针(II)_动态内存_引用_类_对象_构造函数_析构函数
- C++中cout/cin对于空指针、字符指针的处理,及输入>>、 输出<<操作符的重载
- 【c++】析构函数中delete this指针
- c++笔记03---构造函数,初始化表,文件分类,钟表练习,析构函数,this 指针
- 关注C++细节——含有本类对象指针的类的构造函数、析构函数、拷贝构造函数、赋值运算符的例子
- 从零开始学C++之构造函数与析构函数(一):构造函数、析构函数、赋值与初始化、explicit关键字
- this指针、构造函数、拷贝构造函数、析构函数的总结