【 C++ 】
文章平均质量分 73
风雨也无晴
专注于嵌入式开发、ARM、DSP、FPGA、算法研究。
喜欢研究网络安全、电子技术。希望结交志同道合的好朋友。
展开
-
C++中public、protected、private的区别
第一: private,public,protected的访问范围: private: 只能由该类中的函数、其友元函数访问,不能被任何其他访问,该类的对象也不能访问.protected: 可以被该类中的函数、子类的函数、以及其友元函数访问,但不能被该类的对象访问 public: 可以被该类中的函数、子类的函数、其友元函数访问,也可以由该类的对象访问注:友元函数包括两种:设为原创 2014-04-23 11:33:49 · 49671 阅读 · 4 评论 -
C++ Primer笔记12_运算符重载_递增递减运算符_成员访问运算符
1.递增递减运算符C++语言并不要求递增递减运算符必须是类的成员。但是因为他们改变的正好是所操作对象的状态,所以建议设定为成员函数。对于递增与递减运算符来说,有前置与后置两个版本,因此,我们应该为类定义两个版本的递增与递减运算符。原创 2014-06-12 14:49:12 · 1718 阅读 · 0 评论 -
C++ Primer笔记13_运算符重载_总结
总结:1.不能重载的运算符: . 和 .* 和 ?: 和 :: 和 sizeof 和 typeid2.重载运算符有两种基本选择: 类的成员函数或者友元函数, 建议规则如下:运算符建议使用所有一元运算符成员函数= () [] ->必须是成员函数+= -= /=原创 2014-06-13 10:30:03 · 1221 阅读 · 0 评论 -
高内聚与低耦合实现小记
总所周知,实际软件开发中要实现高内聚、低耦合的设计原则。c语言和c++不同,c语言面向过程、c++面向对象。原创 2014-07-05 11:08:58 · 4182 阅读 · 16 评论 -
C++ Primer笔记14_面向对象程序设计
OOP概述面向对象程序设计(object-oriented programming)的核心思想是数据抽象、继承和动态绑定。1.继承:类的一种层次关系,通常在层次关系的根部有一个基类,其他类则直接或间接的继承基类而来。这些继承而来的类称为派生类。原创 2014-06-16 20:57:13 · 1389 阅读 · 0 评论 -
C++ Primer笔记1_转义字符_标准库类型string_标准库类型vector
1.转义字符:\x后紧跟1个或多个十六进制数字、或\后紧跟1、2、3个八进制数字,其中数字部分是字符对应的数值。#include using namespace std;int main(){ bool b = 10; bool b1 = true; bool b2 = false; cout << b << endl; cout << b1 << endl; co原创 2014-06-03 09:57:41 · 1601 阅读 · 0 评论 -
C语言的代码内存布局详解
一个程序本质上都是由 BSS 段、data段、text段三个组成的。这样的概念在当前的计算机程序设计中是很重要的一个基本概念,而且在嵌入式系统的设计中也非常重要,牵涉到嵌入式系统运行时的内存大小分配,存储单元占用空间大小的问题。BSS段:在采用段式内存管理的架构中,BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Starte原创 2014-06-15 10:13:56 · 2441 阅读 · 0 评论 -
C++ Primer笔记3_默认实参_类初探_名字查找与类的作用域
1.默认函数实参在C++中,可以为参数指定默认值,C语言是不支持默认参数的,Java也不支持!默认参数的语法与使用:(1)在函数声明或定义时,直接对参数赋值。这就是默认参数;(2)在函数调用时,省略部分或全部参数。这时可以用默认参数来代替。注意事项:(1)函数默认值只能赋值一次,或者是在声明中,或者是在定义中原创 2014-06-04 09:37:46 · 1396 阅读 · 0 评论 -
C++隐式转换
#include using namespace std;class A{ int a;public: A(int n):a(n) { cout << "Constructor!" << endl; } ~A() { cout << "Destructor!" << endl; }};int main(){ A a = 10; return 0;原创 2014-07-05 22:23:47 · 1102 阅读 · 0 评论 -
C++ Primer笔记11_运算符重载_算术/关系运算符_下标运算符
1.算术/关系运算符 通常情况下,算术与关系运算符定义成非成员函数以允许左右侧运算对象进行转换。因为这些运算符一般不需要改变运算对象的状态,所以形参都是常量的引用。原创 2014-06-11 08:51:26 · 1456 阅读 · 0 评论 -
C++ Primer笔记10_运算符重载_赋值运算符_输入/输出运算符
1.赋值运算符 先以赋值运算符引入后面要说的运算符重载,上一节说了构造函数、拷贝构造函数;一个类要想进行更好的控制,需要定义自己的构造函数、拷贝构造函数、析构函数、当然,还有赋值运算符。常说的三大函数就是指拷贝、赋值、析构。 如果一个类不定义自己的赋值运算符,会自己生成一个默认的赋值运算操作,这个默认的赋值运算满足一般类的需求。但是当类的功能、作用逐渐完善时,就原创 2014-06-10 09:13:23 · 1625 阅读 · 0 评论 -
C++ Primer笔记9_构造函数_拷贝构造(深拷贝与浅拷贝)
1.构造函数:构造函数是一个特殊的、与类同名的成员函数,用于给每个成员设置适当的初始值。构造函数不能有返回值,函数名为类名。缺省构造函数时,系统将自动调用该缺省构造函数初始化对象,缺省构造函数会将所有数据成员都初始化为零或空。缺省构造函数是不带参数的。创建一个对象时,系统自动调用构造函数。总结: 1.构造函数可以重载原创 2014-06-09 08:04:32 · 2588 阅读 · 1 评论 -
C++异常机制详解
一、简单的例子首先通过一个简单的例子来熟悉C++ 的 try/catch/throw:1 #include //包含头文件2 #include3 double fuc(double x, double y) //定义函数4 {5转载 2014-05-11 17:52:51 · 911 阅读 · 0 评论 -
读《高质量C++编程》总结
1.为了防止头文件被重复引用,应当用 ifndef/define/endif 结构产生预处理块。原创 2014-04-26 17:30:16 · 3257 阅读 · 0 评论 -
C++ Primer笔记4_类的静态成员_IO库
1.类的静态成员static成员变量与函数 static成员变量:必须在类外初始化;(const或引用类型变量必须在构造函数初始化列表里初始化) static成员函数:不依赖于类,相当于类里的全局函数(可以由该类对象调用,也可以 类名::函数名()的形式调用)不包含this指针,不能声明为const,声明为const表示不会改变对象,而stati原创 2014-06-04 15:10:11 · 1301 阅读 · 0 评论 -
C++ Primer笔记2_四种类型转换_异常机制
命名的强制类型转换:有static_cast、dynamic_cast、const_cast、reinterpret_cast四种。dynamic_cast支持运行时类型识别。static_cast:该运算符把exdivssion转换为type-id类型,但没有运行时类型检查来保证转换的安全性。原创 2014-06-03 14:09:20 · 1548 阅读 · 0 评论 -
C++ Primer笔记5_STL之顺序容器
标准模板库。从根本上说,STL是一些“容器”的集合,这些“容器”有list, vector,set,map等,STL也是算法和其它一些组件的集合。这里的“容器”和算法的集合指的是世界上很多聪明人很多年的杰作。每一个C++程序员都应该好好学习STL。大体上包括container(容器)、algorithm(算法)和iterator(迭代器),容器和算法通过迭代器可以进行无缝连接。原创 2014-06-05 16:30:02 · 1337 阅读 · 0 评论 -
C++ Primer笔记6_STL之泛型算法
1.泛型算法:大多数算法定义在头文件algorithm中,标准库还在头文件numeric中定义了一组数值泛型算法举例:find函数用于找出容器中一个特定的值,有三个参数int val = 10;//val为我们需要查找的值auto result = find(vec.begin(), vec.end(), val):cout find将前两个表示范围的迭代器内的元素与va原创 2014-06-06 12:25:56 · 1603 阅读 · 0 评论 -
C++ Primer笔记7_STL之关联容器
关联容器与顺序容器不同,关联容器的元素是按关键字来访问和原创 2014-06-07 10:54:00 · 1136 阅读 · 0 评论 -
C++ Primer笔记8_动态内存_智能指针
1.动态内存C++中,动态内存管理是通过一对运算符完成的:new和原创 2014-06-08 12:36:35 · 1289 阅读 · 0 评论 -
C++子类调用父类构造函数
构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法)。因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需要调用其父类的构造方法。如果没有显式的构造函数,编译器会给一个默认的构造函数,并且该默认的构造函数仅仅在没有显式地声明构造函数情况下创建。构造原则如下: 1. 如果子类没有定义构造方原创 2014-05-12 09:49:33 · 13027 阅读 · 1 评论