【《Effective C++》笔记:II】教程文章相关的互联网学习教程文章

01. C++基础入门

1. C++初识  1.1 第一个C++程序  1.2 注释  1.3 变量和常量    a. #define 宏常量    b. const 修饰的变量  1.4 关键字  1.5 标识符命名规则    a. 标识符不能是关键字    b. 标识符只能由字母、数字、下划线组成    c. 第一个字符必须为字母或下划线    d. 标识符中字母区分大小写2. 数据类型  2.1 整型    short  int  long  long long  2.2 sizeof关键字    利用sizeof关键...

C++ string的size()和length()函数没有区别

C++标准库中的string中两者的源代码如下: size_type __CLR_OR_THIS_CALL length() const { // return length of sequence return (_Mysize); } size_type __CLR_OR_THIS_CALL size() const { // return length of sequence return (_Mysize); } 所以两者没有区别。 length是因为沿用C语言的习惯而保留下来的,string类最初只有length,引入...

C/C++编译的程序占用的内存【代码】

/*********************************************************** * ** C程序内存布局 ** *************************************************************(高地址空间)* --------------------------------- * - 命令行参数区 - (命令行参数...

C++的运算符

C++中的运算符包括算数运算符运算符描述实例+把两个操作数相加A + B 将得到 30-从第一个操作数中减去第二个操作数A - B 将得到 -10*把两个操作数相乘A * B 将得到 200/分子除以分母B / A 将得到 2%取模运算符,整除后的余数B % A 将得到 0++自增运算符,整数值增加 1A++ 将得到 11--自减运算符,整数值减少 1A-- 将得到 9关系运算符运算符描述实例==检查两个操作数的值是否相等,如果相等则条件为真。(A == B) 不为真。!=检查两个操...

C++ class内的 ++ 重载,左++,右++,重载示例。【代码】【图】

#include <iostream>// overloading "operator ++ " inside class // ++ 是一元操作符//////////////////////////////////////////////////////////class Rectangle { public:Rectangle(int w, int h) : width(w), height(h){};~Rectangle() {};Rectangle& operator++ (); // ++iRectangle operator++ (int); // i++public:int width;int height; };//////////////////////////////////////////////////////////Rectangle & Rectan...

【C++基础 08】virtual析构函数的作用

在面向对象语言中,接口的多种不同的实现方式即为多态。c++可以使用virtual来实现多态。如果不使用virtual的话,C++对成员函数使用静态联编,而使用virtual,并且在调用函数时是通过指针或引用调用,C++则对成员函数进行动态编联(也就是迟后绑定,运行的时候才确定调用哪个对象)。关于virtual的用法比较简单,不再复述,我们这次来看看virtual析构函数的作用。1.示例我们先来看一段代码:class A { public:~A(){cout<<"~A()";} }...

贪吃蛇小游戏的源程序--c++简例教程

#include "stdafx.h" #include<windows.h> //#pragma comment(lib,"winmm.linb") #include<iostream> #include <string> #include<conio.h> #include<iomanip> #include<ctime> #include <vector> usingnamespace std; SYSTEMTIME sys; class basic { public: void outxy(int x, int y, string s) { HANDLE h; COORD c; c.X = x; c.Y = y; h = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(h, c); cout << s << end...

C++编译指令#pragma pack的配对使用【代码】

#pragma pack可以用来指定C++数据结构的成员变量的内存对齐数值(可选值为1,2,4,8,16)。本文主要是强调在你的头文件中使用pack指令要配对使用,以避免意外影响项目中其他源文件的结构成员的内存对齐。如果影响了其他源文件的结构成员内存对齐,那么在你按照默认对齐来计算那些结构成员占用内存大小或者使用指针移动计算结构成员偏移位置的时候,就可能会出现意料之外的异常。主要可能的异常是内存定位错误或非法内存访问,结果...

c++ map快速入门【代码】【图】

Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!1. map最基本的构造函数; map<string , int >mapstring; map<int ,string >mapint; map<sring, char>mapstring; map< char ,string>mapchar; map<char ,int>mapchar; map<int ,char >mapint;2. map添加数据; map<int ,string> maplive; 1.maplive...

C++02【代码】【图】

C++02指针和引用引用:某一个变量的别名。对引用的操作和对变量的操作完全一样。基本数据类型引用:#include<iostream>` `using namespace std;` `int main(){` `int a=3;` `int &b=a;`//引用必须初始化,否则编译时报错 `b=10;` `cout<<a<<endl;` `return 0;` `}输出结果:10a的别名是b。对b操作就是对a操作。结构体类型的引用:#include<iostream>` `using namespace std;` `typedef struct{` `int x;` `int y;` `}GOT7;...

C++二叉查找树实现及转化为双向链表【代码】

二叉树首先要有树节点template<class T> class BinaryNode { public:T element;BinaryNode *left;BinaryNode *right;public:BinaryNode(T passelement);~BinaryNode(); };template<class T> BinaryNode<T>::BinaryNode(T passelement) {this->element=passelement;this->left=NULL;this->right=NULL; }template<class T> BinaryNode<T>::~BinaryNode() { }二叉树对象则比较复杂 template<class T> class BinarySearchTree { privat...

C++之运算符重载

C++ Code 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661...

C++基础知识(二)

八、继承:让某个类的对象获得另一个类的对象的特性。通过继承可实现代码重用,即从已存在的类派生出的一个新类将自动具有原来那个类的特性。 类的继承还具有:(1)单向性;A类为B类的基类(父类),则派生类(子类)B继承了父类A中的属性和方法,在B类中可访问A类的属性和方法,但在父类A中则不能访问子类的任何属性和方法。同时单向又体现为子类B继承了父类A,则A类不能再继承B类。(2)传递性;A类为B类的基类,B类为C类的基类...

C++利用注册表添加桌面右键新建菜单【代码】【图】

对于程序员来说,新建一个cpp文件是再频繁不过的事情了。为了方便,我们习惯在桌面右键新建文件,而不是新建一个文本文档,然后修改后缀名。百度谷歌查询了一下,终于知道如何添加注册表。手痒,抽出时间用cpp写了一个程序,方便以后操作。客户需求是永远无法满足的,经同学测试,陆续写了三个版本。接下来直接贴代码~第一个版本,只能添加c、cpp、java三种后缀。 1/* 2 * Author: Haipz3 * School: HDU4 * File Name: registry1.0...

c++;jstring类 写时拷贝 简单实现【代码】

#include<iostream>//头文件 #pragma onceusing namespace std; class String { private:char* _string;int* _strCount;size_t _size;size_t _capacity; public:String(const char* str = "\0");String(const String& str);~String();char& operator[](int index);char* GetChar();void operator =(String & str); };#include<iostream>//函数文件 #include"string.h"using namespace std; String::String(const char* str) { ...