默认的话应该是私有成员,所以B没有public的话就是private了吧,前面的关键字只代表继承方式和访问权限,没加那些关键字的话默认为私有继承。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2.在C++中有好几个这样的术语,但是我们很多时候用的并不正确,几乎是互相替换混淆使用。
这几个词是:
函数指针——指针函数
数组指针——指针数组
类模板——模板类
函数模板——模板函数
最终在使用中,我们就可以让它们实至名归,名正言顺。
1>.函数指针——指针函数
函数指针的重点是指针。表示的是一个指针,它指向的是一个函数,例子:
int (*pf)();
指针函数的重点是函数。表示的是一个函数,它的返回值是指针。例子:
int* fun();
2>.数组指针——指针数组
数组指针的重点是指针。表示的是一个指针,它指向的是一个数组,例子:
int (*pa)[8];
指针数组的重点是数组。表示的是一个数组,它包含的元素是指针。例子;
int* ap[8];
3>.类模板——模板类(class template——template class)
类模板的重点是模板。表示的是一个模板,专门用于产生类的模子。例子:
template <typename T>
class Vector
{
…
};
使用这个Vector模板就可以产生很多的class(类),Vector<int>、Vector<char>、 Vector< Vector<int> >、Vector<Shape*>……。
模板类的重点是类。表示的是由一个模板生成而来的类。例子:
上面的Vector<int>、Vector<char>、……全是模板类。
这两个词很容易混淆,我看到很多文章都将其用错,甚至一些英文文章也是这样。将他们区分开是很重要的,你也就可以理解为什么在定义模板的头文件.h时,模 板的成员函数实现也必须写在头文件.h中,而不能像普通的类(class)那样,class的声明(declaration)写在.h文件中,class 的定义(definition)写在.cpp文件中。请参照Marshall Cline的《C++ FAQ Lite》中的[34] Container classes and templates中的[34.12]
Why can't I separate the definition of my templates class from it's declaration and put it inside a .cpp file?
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
本文详细解析了C++中类继承的两种方式及其区别,并深入探讨了类模板与模板类的区别,帮助读者更好地理解和应用这些核心概念。
1万+

被折叠的 条评论
为什么被折叠?



