多态性,友元与静态成员 基础知识小结
2015-01-14 00:51
218 查看
1.
功能晚绑定时运行时完成。
class Point
{
public:
virtual double Area(){}
...
}
class Circle:public Point
{
public:
double Area(){} //仍为虚函数,重定义时virtual可写也可不写
}
double CalcArea(Point &ref){}
//程序运行时根据ref所引用的对象调用该对象的成员函数。
虚函数不能是友元,静态函数,不能是内联,构造函数。可以是析构函数。
2.
纯虚函数:
virtual 函数类型 函数名() = 0;
各派生类根据要求再重新定义这些虚函数。
抽象类(至少含一个纯虚函数)只能作为其它类的基类,不能建立对象,抽象类中可以定义普通函数。
3.
友元:
class Date;
class Clock;
class Clock
{
public:
friend void Display(Clock &);
}
class Date
{
public:
friend void Clock::Display(Date &);
}
也可以友元类:
friend 类名;
4.
静态成员:
static int sum;
static int Display();
它为类的所有对象共享,在所有对象外单独开辟空间,即使不定义对象,也分配空间(编译时)。
静态成员初始化:
数据类型 类名::静态数据成员名 = 初值;
不能再类声明中初始化。
静态成员函数不能默认访问本类的非静态成员,没有this指针。
访问方式:
class Student;
Student s1;
Student::sum ;
或s1.sum ;
功能晚绑定时运行时完成。
class Point
{
public:
virtual double Area(){}
...
}
class Circle:public Point
{
public:
double Area(){} //仍为虚函数,重定义时virtual可写也可不写
}
double CalcArea(Point &ref){}
//程序运行时根据ref所引用的对象调用该对象的成员函数。
虚函数不能是友元,静态函数,不能是内联,构造函数。可以是析构函数。
2.
纯虚函数:
virtual 函数类型 函数名() = 0;
各派生类根据要求再重新定义这些虚函数。
抽象类(至少含一个纯虚函数)只能作为其它类的基类,不能建立对象,抽象类中可以定义普通函数。
3.
友元:
class Date;
class Clock;
class Clock
{
public:
friend void Display(Clock &);
}
class Date
{
public:
friend void Clock::Display(Date &);
}
也可以友元类:
friend 类名;
4.
静态成员:
static int sum;
static int Display();
它为类的所有对象共享,在所有对象外单独开辟空间,即使不定义对象,也分配空间(编译时)。
静态成员初始化:
数据类型 类名::静态数据成员名 = 初值;
不能再类声明中初始化。
静态成员函数不能默认访问本类的非静态成员,没有this指针。
访问方式:
class Student;
Student s1;
Student::sum ;
或s1.sum ;
相关文章推荐
- Java基础知识---【静态成员,封装性,包】------2015年3月6日
- C++知识文档六_对象常量_静态成员_友元_抽象类
- C#基础知识之静态成员
- c#基础知识---静态成员
- C++语法基础--恢复继承成员的访问级别,默认继承保护级别,友元关系与继承,继承与静态成员
- C++学习5-面向对象编程基础(构造函数、转换构造、静态数据成员、静态成员函数、友元)
- 【C++基础】浅谈内联、静态成员和友元
- 嵌入式开发之C++基础学习笔记5--静态成员,友元,运算符重载,模板,文件流
- C#基础知识复习1代码规范-执行流程(c#)-面向对象-引用命名空间-封装-继承-访问修饰符-虚方法-静态成员-多态-抽象类等
- c++静态成员小结
- C++基础--静态成员
- c++静态成员小结,c++,static
- 静态成员函数小结
- C++之静态成员和友元
- C++静态成员函数小结(转)
- WinCE流驱动基础知识小结
- 学习数组类时,碰到typeof(),对其实验引起的一连串知识点、学习小结和思考练习(涉及成员对象变量、成员常量、抽象类Type等知识)
- C++静态成员函数小结
- 用《叩响C#之门》复习C#基础知识 第十章 面向对象编程:多态性
- C#基础之----静态成员与非静态成员