#include<iostream,h>
class Test
{
private:
int num;
public:
Test(int n=0){num=n;num++;}
~Teat( ){cout<<"Destructor is active,number="<<num<<end1;}
void main( )
Test x[2]; 这个是什么意思?
cout<<"Exiting main"<<end1;
最后的结果为什么是Exiting main先输出然后才是Destructor is active,number=1后输出?
#include<iostream,h>
classA
public:
virtual void fun (int data){cout<<"classA:"<<data<<end1"} 这个是定义虚函数?
void fun(char*str){cout<<classA:"<<str<<end1;} 这句是什么意思?
classB:publicA 这个是什么?
public:
void fun( ){cout<<"classB:"<<data<<end1;}
void fun(int data){cout<<classB:"<<data<<end1;}
void fun(char*str){cout<<"classB:"<<str<<end1;} 这个是什么意思?
void main( )
A*pA
B b;
pA=&b:
pA->fun(1)
pA->fun("HELLO")
主函数下面的语句都是什么意思?、
Test x[2]; 表示创建两个Test类的对象
这个x[2]的作用域就是main函数,当main函数执行完后,里面的对象就被析构了,因此是在cout那句话之后才输出x[2]析构函数里面的内容。
virtual void fun (int data){cout<<"classA:"<<data<<end1"}
这个是说明该函数是一个虚函数
void fun(char*str){cout<<"classA:"<<str<<end1;}
这句声明一个函数fun,它的形参是一个char指针str,函数执行的内容是输出"class A:"以及传入的str指针所指向的字符串。
classB:publicA
这里表示B继承A,且是公有继承(public),这时A类的所有public和protected成员都被B类继承,且public/protected权限不变;
另外还有protected和private两种继承类型,protected时A类的所有public和protected成员都被B类继承,且public的作用域都变成protected; private时A类的所有public和protected成员都被B类继承,且所有作用域都变成private。
void fun(char*str){cout<<"classB:"<<str<<end1;}
这句声明一个函数fun,它的形参是一个char指针str,函数执行的内容是输出"class B:"以及传入的str指针所指向的字符串。
A*pA 表示声明一个A类指针pA
B b; 表示声明一个B类对象b
pA=&b: 表示pA指针指向b,=》pA的值就是b的地址
pA->fun(1) 表示执行pA所指向的A类变量的fun方法,并传入一个参数1
pA->fun("HELLO") 表示执行pA所指向的A类变量的fun方法,并传入一个参数"Hello"
Test x[2]; 是创建对象数组,因为退出main函数后系统自动释放对象,释放中将调用析构函数.
是定义虚函数.
就是简单的成员函数,输出使用.
公有继承类A.
就是简单的成员函数,输出使用.
下面的语句是,定义类型A的指针,定义一个类B的对象b,指针pA指向对象b
利用指针pA调用函数fun,注意虚函数和重载.