
C++
newslxw
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
初始化列表
class test{ const int a; std:string str; object o; test():str(“df”),o(null),a(0){} }; 黄色的既是初始化列表,他们会在构造函数正式调用前被调用,且他们的初始化顺序并不是根据 初始化列表中出现的顺序,而是他们声明的原创 2006-08-08 21:46:00 · 1043 阅读 · 0 评论 -
类性强制转换
类性强制转换 不相干的类对象间的转换不可实现。 static_cast用于没有virtual的类对象的向下转换及基础类型间的转换 const_cast只用于临时删除常量性 dynamic_cast和typeid typeid必须引入只用于指针对象间的转换用于RITT,有virtual的类对象的向下和向上转换,如果失败会有异常:bad_c原创 2006-08-15 22:40:00 · 837 阅读 · 0 评论 -
继承与virtual
继承与virtual 子类与父类间关系:1. 覆盖2. 重载 正常情况下,继承其实就是将父类的代码镶入子类,只是这个动作有编译器完成,因此,子类中期是存在父类的副本。通过将子类对象转为父类,就可以直接访问子类中的父类的函数和数据。其实就是嵌套类。而虚函数则是使用了虚函数表,也就是指针,因此不存在父类的相应函数的副本。不过friend,static不能继承,pri原创 2006-08-15 21:54:00 · 1601 阅读 · 0 评论 -
指针的初始化
指针的初始化 多维指针 Object ** p ;p = new Object* [5];for(int i=0 ; i p[i]= new Object[9];原创 2006-08-12 11:33:00 · 974 阅读 · 0 评论 -
智能指针
当只能离开了定义域就会自动释放。 在堆上声明一个simple对象auto_ptr mySimpleSmartPtr(new simple()); 这个mySimpleSmartPtr会自动释放。 相当于simple *mySimpleSmartPtr = new simple();原创 2006-08-16 20:14:00 · 943 阅读 · 0 评论 -
一个指针参数的例子
一个指针参数的例子 要在函数内给指针分配空间,则必须传递指针的地址,而不是指针存放的数据地址,因为我们要改变的是指针的内容。其实原则就是要改变谁的内容就的将他的地址给别人。new操作其实作了两个操作,分配空间和改变指针的内容。#include #include using namespace std;void separateOddsAndEvens(con原创 2006-08-15 22:16:00 · 771 阅读 · 0 评论 -
函数指针,函数变量
对于类中静态的方法,允许将他们的函数名称当作变量使用如下: typedef int (*pdfunc)(int &, const int &); class Test{ public: static int add(int&, const int&);}; pdffunc = Test::ad原创 2006-08-09 19:40:00 · 1230 阅读 · 2 评论 -
构造函数
构造函数 默认构造函数和复制构造函数 复制构造函数一般不用写,编译器会自动生成。在这种情况下使用 string name = “sfsf”;string tmp = name ;//使用复制构造函数 也可string tmp(name); 如果重载了= string name = “sfsf”;string tmp = name ;//使原创 2006-08-08 21:44:00 · 861 阅读 · 0 评论 -
操作符重载
1. 算术运算符 +、-、*、/ 及关系运算符 = != 必须以友元的方式重载,否则不能符合运算符地交换律。如:object + 5 可以但 5 + object时就报错。2. +=,-=,/=,*=,没有必要用友元。3. 要注意:重载这些运算符时,可使用explicit禁止重载中调用了某个构造函数。如:class Test原创 2006-08-09 19:26:00 · 837 阅读 · 0 评论 -
const&static&mutable
const&static&mutable const int a ; //a 必须在类的初始化列表中初始化const object * po ; //*po的值不能变Object * const po; //po的值不能变 const object& getObject(); /原创 2006-08-08 21:43:00 · 829 阅读 · 0 评论 -
assert及编码格式
Assert及编码格式用于保证一个给定的表达式求值为一个非0值,否则中止程序执行。它只需通过预处理器符号NDEBUG就可以把 它从程序中过滤掉。编码格式:1。类型名称的首字母大写,其余的非类型名称则小写开头,常量全部大写。2。多词变量采用首字母小写,其余单词字母大写,取单词的前三位字母,a,an,to,by,for,of 等介词一律全部小写。3。类的数据成员以”d_”(动态的意思)开头,类原创 2006-08-03 21:05:00 · 1026 阅读 · 0 评论 -
C++的头文件,源文件区别
一、声明与定义的区分:一个声明就是一个定义,除非 :声明:引入名称定义:引入实体1.它声明了一个没有详细说明函数体的函数2.它包含一个extern定义符且没有初始化函数或函数体3.它是一个包含在一个类定义之内的静态类数据成员的声明,它必须在最终程序的某处准确的定义一次4.它是一个类名声明,如class test;5.它是一个typedef声明。言外之意:1。类的声明也就是定义2。同时赋初值的声原创 2006-08-03 00:58:00 · 6272 阅读 · 3 评论 -
引用和指针的使用区别
引用和指针的使用区别 一个引用在使用时相当于 *p;引用的定义则是 object &a = object();指针则是 object *a = &object();引用的内存不能删除,一般为栈变量。 能用引用尽量使用引用。 引用作为参数时,不能传常量给他,必须是变量名称如下add(int&a, int&b)add(4,4) //非法int a=b=4原创 2006-08-08 21:45:00 · 4034 阅读 · 1 评论 -
指针与字符串操作的一些常见错误
指针与字符串操作的一些常见错误 1. 长度问题,字符串长度是strlen()+1;strlen是不包含null字符长度的,主要是用于字符串运算时不方便 2. 字符串直接量必须使用strcpy等函数将字符串直接量赋给指针,否则不能修改只能的内容。当然逐个字符的赋值也可以。cout这个”hello”就是字符串直接量,他们的具体内存空间是位于内原创 2006-08-16 20:13:00 · 1339 阅读 · 0 评论