在使用virtual之前,C++对成员函数使用静态联编,而使用virtual,并且在调用函数时是通过指针或引用调用,C++则对成员函数进行动态联编。
用法:
class Base
{
public:Base(){}
public:
virtual void print(){cout<<"Base"}
}
class Derived:public Base
{
public:Derived(){}
public:
void print(){cout<<"Derived"}
}
int main()
{
Base *point=new Derived()
point->print()
}
Output:
Derived
扩展资料C++11 关键字共73个。
新增关键字:alignas、alignof、char16_t、char32_t、constexpr、decltype、noexcept、nullptr、static_assert、thread_local。
export 因为实现支持太少(仅Edison Design Group的前端支持),编译效率低下,取消原有意义(仍是关键字,但使用它的程序是错误的),改为保留给未来标准使用。
1、alignas
alignof用于获取取指定表达式指定的(类似sizeof,可以直接是类型名)的对齐(alignment)。alignas用于声明时指定对齐类似于现有的类型。和sizeof类似,两者的 *** 作数都不被求值。
2、constexpr
类似const但更强大,修饰函数或对象,表示函数结果或对象是编译时决定的常量,以便优化。(const不能修饰一般的函数,也不一定指定声明的对象能编译期的常量表达式,更可能只是只读对象。而在C语言中,const完全只能指定只读对象。)
3、char16_t 和 char32_t
二者分别表示16位字符型和32位字符型,类似char和wchar_t,也是一般只专用于表示字符的整数类型,且设计上用于表示Unicode字符。char16_t和char32_t是C++11新增的,以克服wchar_t在不同平台上无法保证确定宽度的缺点。
参考资料来源:百度百科--virtual
首先选到CLASSVIEW,然后右击需要添加成员函数的类,选择ADD MEMBER FUNCTION,出来的对话框,比如说public int add(int y,int x)
Function Type:int
Function Declare:add(int y,int x)
Acess:选择public
最后两个static virtual你的函数是静态就选择static,是虚函数就选择virtual。
这样就成功往类里加成员函数了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)