![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++ 类
tianshi182011
这个作者很懒,什么都没留下…
展开
-
c++ 类的数据成员初始化
class First{public: int num = 0;//错误 const int num1 = 0;//错误 static int num2 = 0;//错误 static const int num3 = 0;//正确,只有静态常量整型数据成员才可以在类中初始化 string str = "0";//错误 const string str1 = "0";/...原创 2010-11-09 17:26:56 · 106 阅读 · 0 评论 -
c++ 虚拟new操作符(创建抽象基类对象的拷贝)
基类定义如下:class Query{public:virtual Query *clone() = 0;};派生类定义如下:class NameQuery : public Query{public:virtual Query *clone(){return new NameQuery(*this);}};Query *pq = new...2010-11-10 15:14:42 · 364 阅读 · 0 评论 -
c++ 类的虚拟函数和缺省实参
#include <iostream>class Base{public:virtual int foo( int ival = 1024 ){cout<<"Base::foo()----- ival: "<<ival<<endl;return ival;}};class Derived : public ...2010-11-10 14:58:32 · 106 阅读 · 0 评论 -
c++ 类的虚拟机制
以下类的定义只是为了说明虚拟机制而设计:class Animal{public:int getNum();}class Bird : public Animal{public:int getNum();}Animal *pa = new Bird();1、pa->getNum();此时调用的是Animal类的getNum()修改...2010-11-10 11:43:00 · 292 阅读 · 0 评论 -
c++ 基类和派生类函数构成重载
class Diff{public :void numble( int doftness );}class Shy : public Diff{public:void numble( string str);using Diff::numble;}要想使基类和派生类中的这两个函数形成重载:需要在派生类中加一句话using Diff::numble; 这样...2010-11-10 11:21:28 · 439 阅读 · 0 评论 -
c++ 多态性
c++支持多态性的几种方式:1、通过一个隐式转化,从“派生类指针或引用”转化到“其公有基类类型的指针或引用”Query *pquery = new NameQuery( "Glass" );2、通过虚拟函数机制3、通过dynamic_cast 和 typeid 操作符(RTTI)1)首先这两个操作符是在“运行时刻类型识别”!2)当一个类库是由第三方库提供商提供时,此时我们不...2010-11-10 11:01:49 · 79 阅读 · 0 评论 -
c++ 指向类成员的指针
定义类如下:class Foo{public:static int getNum();private:static int num;}1、定义一个指针指向 类的数据成员 numint Foo::*p = &Foo::num2、定义一个指针指向 类的成员函数 getNum()int (Foo::*pf)() = &Foo::getNum;...2010-11-10 09:42:43 · 114 阅读 · 0 评论 -
c++ 类的静态成员
1、静态数据成员的类型可以是其所属类,而非静态数据成员只能被声明为该类的对象的指针。例如:class Bar{private:static Bar mem;//正确Bar mem1;//错误Bar *mem2;//正确}2、静态数据成员可以被作为类成员函数的缺省实参,而非静态成员不能。例如:class Foo{private:static int s...原创 2010-11-10 09:16:28 · 65 阅读 · 0 评论 -
类总结 集锦
class Screen{public:void home(){_cursor = 0;}private:int _cursor;}虽然每个类对象都有自己的类数据成员拷贝。但是每个类成员函数的拷贝“只有一份”!例如:Screen myScreen, groupScreen;myScreen.home();groupScreen.home();其中my...2010-11-09 21:54:33 · 95 阅读 · 0 评论 -
类的 访问控制(private,public,protected)
Animal为基类,Bird为派生类Bird继承Animal当继承方式为public时父类的public成员在子类也是public父类的protected成员在子类也是protected父类的private成员只属于父类当继承方式为protected时父类的public成员在子类是protected成员父类的protected成员在子类也是protected...原创 2010-11-09 21:41:43 · 218 阅读 · 0 评论 -
c++ 类的虚拟继承
有一个基类:class Animal {public:Animal();void setWeight(float weight);float getWeight();private:float weight;}有两个Animal类的派生类:class ma:public Animal{public:ma();void run();...2010-11-10 21:15:16 · 110 阅读 · 0 评论