给指针赋值或通过指针进行赋值 如果对左操作数进行解引用,则修改的是指针所指对象的值;如果没有使用解引用操作,则修改的是指针本身的值。例如 string s("Hello world"); string* p=&s; cout<<*p&l
关于数组: 1, 定义:数组的维数必须用值大于等于1的常量表达式定义。 2, 此常量表达式只能包含整型字面值常量、枚举常量、或者用常量表达式初始化的整型const对象。 例如: const unsigned bufsize=512; int staffsize=27; char ni[12]; char ina[bufsiz
按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示: class String { String ( const char* p ); // 用C风格的字符串p作为初始化值 //… } String s1 = “hello”; //OK 隐式转换,等价于St
#include<iostream> using namespace std; class Operation { public : Operation(doubl
C++ 中定义class来定义数据类型,类定义了该类型的对象包含的数据和该类型的对象可以执行的操作。 每个类都定义了一个接口(interface)和一个实现(implementation),接口由使用该类的代码需要执行的操作组成,实现一般包括该类所需的数据,实现还包括定义改类需要的但又不供一般性使用的函数。 定义类时,通常先定义该类的接口,即该类所提供的操作。可以决定该类完成其功能所需要的数据
声明变量 , 加上extern 关键字,例如 extern int i;//只是声明了变量,但是不定义变量, 任何在啊多个文件中使用的变量都需要有与定义分离的声明。在这种情况下,一个文件含有变量的定义,使用该变量的其他文件则包含改变量的声明,而不是定义 全局作用域中定义非const变量,整个成寻中都可以访问的 
从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。 而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始至终只能依附于同一个变量)。 在C++中,指针和引用经常用于函数的参数传递,然而,指针传递参数和引用传递参
#include "stdafx.h" #include<windows.h> #include<iostream> int lowsetOne(int N) { &nb
T&operator[](int n){return elem[n];}//write const T& operator[](int n){return elem[n];}//read 读写分离,因为const 只能调用const类型的,所以必须实现
迭代器: 迭代器是一个非常抽象的概念 迭代器指向序列中的某个元素(或者序列末端元素之后) 可以使用==,和!=来i两个迭代器进行比较 可以使用单目运算符*来访问迭代器所指向的元素 可以利用操作符++来使迭代器指向下一个元素。 迭代器的概念和指针是相关的,实际上指向数组中某一元素的指针就是一个迭代器 但是,许多迭代器不紧急死指针,比如说我们可以定义一个边界检查的迭代器,当试图使它指向[
class Int { public: Int(int i) {  
namespace std { template<class T> class auto_ptr { private: T* ap; public: &nbs
动态转换运算符通常用于在类曾次中进行类型转换;p指向基类对象的指针,而D是派生类、如果p不是D* 类型的话会返回0,如果希望跑出异常不是返回0则使用引用转换代替指针转换。动态类型转换是唯一依赖运行时类型检查的。 静态转换运算符用于恰当的行为良好的类型转换。 x=dynamic_cast<D*>(p) 尝试将p转换为D* 类型(可能返回0)
设置默认值的方式 Template<calss T> T def=T();例如 double do_a=double();char ch_a=char();
istream& read_word(istream&is,char* buffer,int max) { is.width(max);//read at most max-1 characters in the next>> is>>buffer;//read whitespace-terminated word,add ze
拷贝赋值函数 classvector { int sz; double* elem; void copy(constvector& arg); public : &n
含有virtual的函数叫做虚函数,传递子类的地址时,在加virtual后,子类有该函数就调用子类的,子类没有就调用父类的, 子类对象的地址空间包括两部分,一部分为基类,另一部分为子类, 纯虚函数没有函数体,含有纯虚函数的类叫做抽象类,子类必须实现基类中的方法, 例如 :基类中 virtual void breath()=0;定义纯虚函数的方法 引用
Decimal 十进制 Hexadecimal 十六进制 hex Octal 八进制 oct cout<<1234<<"\t nihao \n" <<hex<<1234<<"\t h
拷贝构造函数: 当用一个vector对象初始化另外一个vector对象的时候,应拷贝所有的向量元素并且保证这一拷贝操作确实被调用了。 某一个类型的对象的初始化是由该类型的构造函数实现的。素以实现拷贝操作,我们需要实现一种特定类型的构造函数。这种类型的构造函数成为拷贝构造函数。C++定义拷贝构造函数的参数应该为一个队被拷贝对象的引用。因此对于类型vector而言,他的拷贝构造函数为如
c++书籍
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号