有些书上写学习C++不需要学过C
可是C++是C的超集
C是C++的子集
C的那些函数需要学习吗?
还有那些预处理指令是不是都很重要呢
学好C++是不是这些都需要呢?
有啊, class的默认访问权限是private,而struct默认访问权限是public.它一样可以有private,public,protected.
class和struct基本就是一个东西。语法上没有任何其它区别,除了上面那点,类本身就是从结构引申过来的。
结构一样可以多重继承,如:
#include <stdio.h>
struct A1 { virtual ~A1() { printf("A1 dtor\n"); } };
struct A2 : A1 { virtual ~A2() { printf("A2 dtor\n"); } };
struct A3 : A2 { virtual ~A3() { printf("A3 dtor\n"); } };
struct B1 { ~B1() { printf("B1 dtor\n"); } };
struct B2 : B1 { ~B2() { printf("B2 dtor\n"); } };
struct B3 : B2 { ~B3() { printf("B3 dtor\n"); } };
int main() {
A1 * a = new A3;
delete a;
printf("\n");
B1 * b = new B3;
delete b;
printf("\n");
B3 * b2 = new B3;
delete b2;
}
------------------------------MSDN-------------------------------------------
都可以有成员函数;包括各类构造函数,析构函数,重载的运算符,友元类,友元结构,友元函数,虚函数,纯虚函数,静态函数,上面也体现了虚函数吧。
除去定义类型时有上述区别之外,另外还有一点点:“class”这个关键字还用于定义模板参数,就像“typename”。但关键字“struct”不用于定义模板参数。
其实结构体功能也是满大的。。。。^_^