
一起来学C++
Alatebloomer
这个作者很懒,什么都没留下…
展开
-
1.const与#define、结构体内存对齐
目录const与#define 结构体内存对齐const与#define用const给字面常量起个名字(标识符),这个标识符就称为标识符常量;因为标识符常量的声明和使用形式很像变量,所以也称常变量 定义的一般形式: const 数据类型 常量名=常量值; 数据类型 const 常量名=常量值; 例如const float PI=3.14159f;...原创 2018-04-23 00:12:17 · 499 阅读 · 0 评论 -
11 static与单例模式
单例模式保证一个类只有一个实例,并提供一个全局访问点 禁止拷贝#include <iostream>using namespace std;class Singleton{public: static Singleton* GetInstance() { if (instacne_ == NULL) { instacne_ = new Single...原创 2018-08-01 22:58:03 · 427 阅读 · 0 评论 -
10.数据抽象与封装
分别用C和C++实现一个stack#include <iostream>using namespace std;/*struct Link{ int data; struct Link* next;};struct Stack{ struct Link* head; int size;};void StackInit(struct Stack* s...原创 2018-08-01 18:50:53 · 348 阅读 · 0 评论 -
9.对象的使用
目录 static成员static成员函数类/对象大小计算四种对象作用域与生存期static用法总结const成员函数const对象mutablestatic成员对于特定类型的全体对象而言,有时候可能需要访问一个全局的变量。比如说统计某种类型对象已创建的数量。 如果我们用全局变量会破坏数据的封装,一般的用户代码都可以修改这个全局变量,这时我们可以用类的...原创 2018-08-01 18:44:28 · 303 阅读 · 0 评论 -
14.重载运算符
类型转换运算符必须是成员函数,不能是友元函数 没有参数 不能指定返回类型 函数原型:operator 类型名();#ifndef _INTEGER_H_#define _INTEGER_H_class Integer{public: Integer(int n); ~Integer(); Integer &operator++(); ...原创 2018-08-10 00:52:54 · 183 阅读 · 0 评论 -
8.构造函数与析构函数(二)
构造函数初始化列表推荐在构造函数初始化列表中进行初始化构造函数的执行分为两个阶段初始化段 普通计算段 函数体中的赋值,实际上内存已经分配好了对象成员及其初始化成员的构造顺序与初始化列表中的顺序无关,而与成员定义的顺序有关。如果成员类型是类类型,且该类型没有默认构造函数,则一定要放在初始化列表中const成员、引用成员初始化const成员,引用成员的初始化也只能放在构造函...原创 2018-07-31 13:11:44 · 235 阅读 · 0 评论 -
7.构造函数与析构函数(一)
目录 构造函数默认构造函数重载构造函数构造函数与new析构造函数析构函数与delete运算符析构函数可以显式调用转换构造函数赋值与初始化区别explicit构造函数构造函数是特殊的成员函数 创建类类型的新对象,系统自动会调用构造函数 构造函数是为了保证对象的每个数据成员都被正确初始化 函数名和类名完全相同 不能定义构造函...原创 2018-07-31 11:30:24 · 293 阅读 · 0 评论 -
14.重载运算符
++运算符重载前置++运算符重载成员函数的方式重载,原型为: 函数类型 & operator++();友元函数的方式重载,原型为: friend 函数类型 & operator++(类类型 &);后置自增和后置自减的重载成员函数的方式重载,原型为: 函数类型 & operator++(int);友元函数的方式重载,原型为:...原创 2018-08-03 23:29:38 · 298 阅读 · 0 评论 -
13.运算符重载
目录运算符重载成员函数重载非成员函数重载运算符重载规则运算符重载运算符重载允许把标准运算符(如+、—、*、/、<、>等)应用于自定义数据类型的对象 直观自然,可以提高程序的可读性 体现了C++的可扩充性 运算符重载仅仅只是语法上的方便,它是另一种函数调用的方式 运算符重载,本质上是函数重载 不要滥用重载、因为它只是语法上的方便,所以只有在涉及的代码更容...原创 2018-08-03 22:00:58 · 222 阅读 · 0 评论 -
12友元
友元介绍友元是一种允许非类成员函数访问类的非公有成员的一种机制。可以把一个函数指定为类的友元,也可以把整个类指定为另一个类的友元。友元函数 友元类友元函数友元函数在类作用域外定义,但它需要在类体中进行说明为了与该类的成员函数加以区别,定义的方式是在类中用关键字friend说明该函数,格式如下:friend 类型 友元函数名(参数表);友元的作用在于提高程序的运行效...原创 2018-08-03 21:29:46 · 169 阅读 · 0 评论 -
6.类与对象
目录 类声明公有、私有、保护成员数据抽象和封装内联成员函数成员函数的重载及其缺省参数类与结构体隐含的this指针类作用域前向声明嵌套类局部类类声明//类是一种用户自定义类型,声明形式:class 类名称{ public: 公有成员(外部接口) private: 私有成员 ...原创 2018-07-26 10:14:27 · 186 阅读 · 0 评论 -
5.面向对象
目录 结构化程序设计面向对象程序设计数据抽象实体、对象、类之间的关系抽象封装继承多态继承与多态面向对象思想总结面向对象编程方法的特性面向对象编程的优缺点结构化程序设计传统的程序设计方法可以归结为“程序=算法+数据结构”,将程序定义为处理数据的一系列过程。这种设计方法的着眼点是面向过程的,特点是数据与程序分离,即数据与数据处理分离。 结...原创 2018-05-09 23:54:12 · 389 阅读 · 0 评论 -
4.内联函数与类型转换符
目录 内联函数内联函数与带参数宏区别类型转换符 内联函数当程序执行函数调用时,系统要建立栈空间,保护现场,传递参数以及控制程序执行的转移等等,这些工作需要系统时间和空间的开销。有些情况下,函数本身功能简单,代码很短,但使用频率却很高,程序频繁调用该函数所花费的时间却很多,从而使得程序执行效率降低。(CPU利用率低) 为了提高效率,一个解决办法就是不使用函数,直接将函数...原创 2018-04-27 00:43:18 · 185 阅读 · 0 评论 -
3.引用与指针
目录引用const引用引用传递引用作为返回值引用与指针区别值传递/引用传递/指针传递引用引用是给一个变量起别名,在实际应用中,引用一般用作参数传递与返回值 引用不是变量,引用仅仅只是变量的别名 引用没有自己独立的空间,引用要与它所引用的变量共享空间 对引用所做的改变实际上是对它所引用的变量的改变 引用在定义的时候要进行初始化,引用一经初始化,不能重新指...原创 2018-04-25 00:44:44 · 226 阅读 · 0 评论 -
2.new与delete、重载函数
目录 域运算符new和delete重载name managling与extern“C”带默认形参值的函数域运算符C++中增加的作用域标识符::用于对与局部变量同名的全局变量进行访问 用于表示类的成员int var = 100;int main(void){ int var = 50; cout<<var<<endl; //输...原创 2018-04-07 01:06:34 · 264 阅读 · 0 评论 -
string
一、标准库string类型string类型支持长度可变的字符串,C++标准库将负责管理与存储字符相关的内存,以及提供各种有用的操作 ,在VC中直接F1查看template < class CharType, class Traits=char_traits<CharType>, class Allocator=allocator<CharTyp...原创 2018-08-17 00:40:46 · 192 阅读 · 0 评论