C++:
1.static函数可以调用类的非静态变量吗?
不能,static成员函数没有传入this指针,所以不能调用某个具体对象的非static成员
非要调用的话也不是不可以实现:可以定义一个static指针,然后在构造函数中让这个指针等于this,就可以在static中使用这个指针进行操作非静态变量了。
延伸:
在C++中,类对象的构造顺序是这样的:
1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员
2.进入构造函数后在构造函数中执行一般计算
也就是说,在C++中,类中的成员在定义的时候不能被初始化,只有经过构造函数的构造之后才能被初始化。
2.多态性的理解?怎么实现?
一个接口,多种实现
// duotai.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
class A
{
public:
virtual void get()
{
cout << "A" << endl;
}
};
class B :public A
{
public:
void get()
{
cout << "B" << endl;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
A a;
B b;
A *pa = new B;
pa->get();//B
pa = &b;