----------类class与对象object
文章平均质量分 55
寂寂寂寂寂蝶丶
这个作者很懒,什么都没留下…
展开
-
拷贝构造函数的参数为什么是&类型(避免造成循环调用)
转载自:https://www.cnblogs.com/this-543273659/archive/2011/09/18/2180575.html1.人为的规定2.避免造成循环调用(循环调用拷贝构造函数)转载 2021-04-19 11:07:23 · 285 阅读 · 0 评论 -
函数到指针的隐式转换,非静态成员函数的特殊
转载自:https://www.cnblogs.com/Esfog/archive/2012/04/23/2467249.html函数在内存中的分配 首先说一下C/C++在创建一个变量的时候比如int a,相应的在内存就会分配一个4个字节(根据不同机器可能不同)空间来存放这个int变量,而假设这4个字节的起始地址是0XFF0A,那么实际上就存在一种变量名和内存地址的映射,即a可以看做是一个标示符,他只是代表着0XFF0A这个地址,在程序中你对a进行的操作实际上也就是对内存中以0XFF0A...原创 2021-02-08 11:51:33 · 579 阅读 · 0 评论 -
当C++定义类时,编译器会为类自动生成哪些函数?这些函数各自都有什么特点?
简要:对于一个空类,C++编译器默认生成四个成员函数:默认构造函数、析构函数、拷贝(复制)构造函数、赋值函数目录一、默认构造函数二、析构函数三、拷贝(复制)构造函数四、赋值函数一、默认构造函数 默认构造函数(default constructor)就是在没有显式提供初始化式时调用的构造函数。它由不带参数的构造函数,或者为所有的形参提供默认实参的构造函...转载 2019-09-22 21:14:56 · 2693 阅读 · 0 评论 -
类的前向声明及与#include头文件的区别
前向声明以及#include头文件两者区别: 前向声明指在A程序中引入新的类型B,但是B并不是一个完整清晰的类,因为我们只知道只是一个B类,但是我们不清楚它的具体函数接口实现以及成员变量;不能定义一个B的类型,只能使用指针和引用的方式;直到后面找到B的定义我们才真正直到B的具体实现,才可以调用它的实现方式;如果直接在程序中#include则可以直接定义这个类;前向声明的使用场...原创 2019-09-21 11:32:53 · 581 阅读 · 0 评论 -
C++中冒号(:)和双冒号(::)的用法
C++中冒号(:)和双冒号(::)的用法#include "stdafx.h"#include <iostream>using namespace std;#if 0C++中冒号(:)和双冒号(::)的用法1.冒号(:)用法(1).表示机构内位域的定义(即该变量占几个bit空间)位域列表形式: 类型说明符 位域名:位域长度typedef struct _XX...转载 2018-08-10 10:43:14 · 957 阅读 · 0 评论 -
利用指向类成员函数的指针数组,实现更加隐蔽的接口
利用指向类成员函数的指针数组,实现更加隐蔽的接口#include "stdafx.h"#include using namespace std;class Widget{public: Widget() { //对函数指针数组进行初始化 一定要加Widget:: fptr[0] = &Widget::f; fptr[1] = &Widget::g; fpt原创 2017-12-07 16:09:01 · 338 阅读 · 0 评论 -
指向类数据成员、类成员函数的指针
指向类数据成员、类成员函数的指针(非静态)#include "stdafx.h"#include using namespace std;#include #if 0----指向类 数据成员的指针 实际上是指向类的定义::*赋值&初始化::*[=&::]指向类成员指针小结:与普通意义上的指针不一样。存放的是偏移量。从类的起始地址的偏移量指向非静态成员函数原创 2017-12-07 15:50:25 · 436 阅读 · 0 评论 -
static修饰类数据成员 与 static const数据成员
static修饰类数据成员#include "stdafx.h"#include using namespace std;#if 0static 在类内部的表现,用来实现族类对象间的数据共享在生成对象的时候,普通数据成员才有空间。而static成员 在类声明的时候,就已经开辟了空间开辟在data段的rw段static 数据成员 既属于类,也属于对象,但终归属于类。因为原创 2017-12-07 14:42:30 · 382 阅读 · 0 评论 -
static修饰成员函数 与 实现渲染树的模拟
static修饰成员函数#include "stdafx.h"#include using namespace std;#include #if 0static 修饰成员函数,它的作用只有一个,用于管理static成员static 修饰的成员函数,既属于类也属于对象,但终究属于类 可以不用创建对象的情况下访问也可以认为是School命名空间里的一个函数static转载 2017-12-07 14:43:34 · 247 阅读 · 0 评论 -
const修饰类成员和类对象、const修饰成员函数构成重载、可变数据成员mutable、
const修饰数据成员、成员函数#include "stdafx.h"#include <iostream>using namespace std;#if 0const 修饰数据成员、成员函数、类对象1. const 修饰数据成员:初始化位置可以在参数列表中,新版本也可以在声明位置直接初始化被const修饰的数据成员,不能被修改2. const 修饰成员函...原创 2017-12-07 14:22:23 · 2270 阅读 · 2 评论 -
类成员函数作为公共函数
类成员函数作为公共函数#include "stdafx.h"#include using namespace std;#if 0----公共函数的调用原理:c++设置了 this 指针,this 指针指向调用该函数的不同对象。当 t 调用dis()函数时,this 指向 t。当 t1 调用 dis()函数时,this 指向 t1;----相关注意:1.不论成员函数在类内定原创 2017-12-02 10:05:18 · 937 阅读 · 0 评论 -
返回栈上的对象、对象的引用及各构造器发生的时机
返回栈上的对象、对象的引用及各构造器发生的时机#include "stdafx.h"#include <iostream>using namespace std;#if 0栈上的对象是可以返回的 但不能返回栈上的引用(除非返回对象自身的引用)也就是自己调用一个函数 不能返回其他的引用 只能返回自己的引用 因为其他会在函数结束后释放而自己并没有释放----返回对象...原创 2017-12-02 09:58:44 · 495 阅读 · 0 评论 -
类中的this指针
类中的this指针#include "stdafx.h"#include using namespace std;#include #if 0this 指针意义:系统在创建对象时,默认生成的指向当前对象的指针。这样作的目的,就是为了带来方便。作用:1,避免构造器的入参与成员名相同。2,基于 this 指针的自身引用还被广泛地应用于那些支持多重串联调用的函数中 比如转载 2017-12-02 09:57:20 · 344 阅读 · 0 评论 -
构造器参数列表的注意事项
构造器参数列表的注意事项#include "stdafx.h"#include #include using namespace std;//初始化列表中的初始化顺序,与声明顺序有关,与前后赋值顺序无关class A{public: A(char * ps) :name(ps), len(strlen(name.c_str())){} void dis() {转载 2017-12-02 09:57:00 · 356 阅读 · 0 评论 -
构造器与析构器
构造器与析构器#include "stdafx.h"#include using namespace std;#if 0----构造器class 类名{ 类名(形式参数) 构造体}class A{ A(形参) { }}特性:在类对象创建时,自动调用,完成类对象的初始化。尤其是动态堆内存的申请1.构造器 用于完成对象创建的初始化2.在对象创转载 2017-12-02 09:56:29 · 245 阅读 · 0 评论