C++
liuwei423210896
这个作者很懒,什么都没留下…
展开
-
C++学习笔记
1、二义性:在实参中注意不要使用带有副作用的运算符,此时可能造成二义性。 使用对参数求值顺序不同的编译器造成的二义性:add(++x,x+y) //自左至右 5 11 自右至左 5 10 注意:函数参数求值顺序与参数默认值补足顺序不同参数求值顺序:由编译器决定求值方向;参数默认值补足顺序:自左向右2、c++在函数定义时可以指定,一个或者原创 2015-09-24 21:44:37 · 323 阅读 · 0 评论 -
c++学习笔记十六
40、虚函数#includeclass A{public:A() { coutvirtual void f() { cout};class B:public A{public:B() { f(); coutvoid g() { f(); }};class C:public B{public:C() { coutvirtual原创 2015-10-08 13:26:59 · 338 阅读 · 0 评论 -
c++学习笔记十五
38、静态束定 #includeclass Point{public: Point(double i,double j) { x = i;y = j; }double Area() const { return 0; } private:double x,y;};class Rectangle:public Point{public:Rect原创 2015-10-08 13:26:04 · 406 阅读 · 0 评论 -
c++学习笔记十二
28、多继承 #includeclass B1{public:B1(int i) { b1 = i; coutvoid Print() { coutprivate:int b1;};class B2{public:B2(int i) { b2 = i; coutvoid Print() { coutprivate:int b2;}原创 2015-10-08 13:20:39 · 351 阅读 · 0 评论 -
c++学习笔记十一
27、构造函数#includeclass B{public:B();B(int);~B();void Print() const;private:int b;};B::B(){b = 0;cout}B::B(int i){b = i;cout}B::~B(){cout}void B::Print原创 2015-10-08 13:22:27 · 274 阅读 · 0 评论 -
c++学习笔记九
25、堆对象a.在程序中运行过程中根据需要可以随时建立或删除的对象。b.堆对象运算符:new、deletec.new运算符 new创建数组: new []例如: A *ptr;ptr = new A[5]; 1.使用new创建对象数组或一般数组时,不能为该数组指定【初始值】, 其初始值为【缺省值】。 2.使用new[]创建对象数原创 2015-10-08 13:18:38 · 516 阅读 · 0 评论 -
c++学习笔记十四
32、运算符重载为友元函数 #includeclass complex {public:complex(double i=0,double j=0);friend complex operator -(const complex & c1,const complex & c2);friend complex operator +(const complex & c1,原创 2015-10-08 13:25:14 · 271 阅读 · 0 评论 -
c++学习笔记十
26、a.公有类继承 继承方式的作用:控制基类中声明的成员在多大的范围内能被派生类的用户访问。#includeclass Location{public:void InitL(int xx,int yy);void Move(int xOff,int yOff);int GetX() { return X; }int GetY() { return Y原创 2015-10-08 13:19:51 · 368 阅读 · 0 评论 -
c++学习笔记十三
31、多态性和虚函数 多态性:发出同样的消息被不同类型的对象接受导致完全不同的行为; 多态可分为:静态多态性与动态多态性; 动态多态性必须存在于继承的环境中; 在类中,构造函数可以重载,普通成员函数也可以重载;构造函数重载给初始化带来了多种方式,为用户提供了更大的灵活性。#include#includeclass string{public:st原创 2015-10-08 13:24:15 · 317 阅读 · 0 评论 -
C++学习笔记七
23、(1).常指针char *const ptr1 = strptrl;>ptrl是一个常量指针,指向固定的地方。>ptrl = strptr2; 错误>*ptrl = "m"; 正确>ptr不可以更新>ptr所指向的变量可以更新;const char *ptr2 = strptrl;>ptrl是一个指向常量的指针;>ptrl = strptr2原创 2015-09-24 21:49:41 · 277 阅读 · 0 评论 -
C++学习笔记六
20、对象数组#includeclass DATE{public:DATE() { month=day=year=0;cout}DATE(int m,int d,int y){month = m;day = d;year = y;cout} ~DATE(){cout}void Print() {cout原创 2015-09-24 21:48:53 · 245 阅读 · 0 评论 -
C++学习笔记五
18、(1)对象指针做函数参数a.对象指针和对象引用b.数组c.常类型d.子对象和对对象优点:a.实现传址调用。可在被调用函数中改变调用函数的参数对象的值,实现函数之间的信息传递;b.使用对象指针实参仅将对象的地址值传递给形参,而不是进行副本的拷贝,这样可以提高运 行效率,减少时间开销;#includeclass M{public:M()原创 2015-09-24 21:48:17 · 354 阅读 · 0 评论 -
C++学习笔记二
7、类的定义格式(续) >在类体中不允许对所定义的数据成员进行初始化: class TDate { public: .... private: int year(1998),month(4),day(9); }; >类中的数据成员的类型可以是任意的: 1.包括整型、浮点型、数组、指针和引用等; 2原创 2015-09-24 21:45:57 · 311 阅读 · 0 评论 -
C++学习笔记三
11、重载性1.构造函数能重载2.析构函数不能重载3.一般函数可以重载#includeclass M{public:M(int x,int y) { X = x; Y = y;}M(int x) { X = x;Y = x*x;}int add(int x,int y);int add(int x);int add();int Xout() {原创 2015-09-24 21:46:36 · 597 阅读 · 0 评论 -
C++学习笔记八
24、子对象》当一个类的成员时另一个类的对象时,该对象就为子对象。》子对象即是对象的成员》当类中出现了子对象(对象成员),该类的构造函数要包含对子对象的初始化, 通常采用成员初始化列表的方法来初始化子对象;#includeclass A {public:A(int i,int j) { A1 = i;A2 = j;}void Print() { cou原创 2015-09-24 21:50:38 · 371 阅读 · 0 评论 -
C++学习笔记四
15、友元函数1.为什么要引入友元函数? 在对某些成员函数多次调用时,由于参数的类型检查和安全性检查都需要时间开销,从而影响了程序的运行效率,引入友元后可以提高程序的运行效率;2.使用格式: a.是一种定义在类外部的【类】或【普通函数】,但需要在类体内进行说明(前面加 friend关键字) b.不是成员函数,但可以访问类中的私有成员。(重要!!!!)3.原创 2015-09-24 21:47:25 · 322 阅读 · 0 评论 -
c++学习笔记十七
43、44、虚析构函数#includeclass A{public:A() { cout~A() { cout};class B:public A{public:B() { coutB(int i) { buf=new char[i]; cout~B(){delete buf;cout}private:char *bu原创 2015-10-08 13:28:22 · 293 阅读 · 0 评论