struct vs. class
Possible Duplicates:
C/C++ Struct vs Class
What are POD types in C++?
Hi,
In the C++ In a Nutshell book , in chapter 6: classes , unders Access specifiers , mentioned the following:
In a class definition, the default access for members and base classes is private. In a struct definition, the default is public. That is the only difference between a class and a struct , although by convention, some programmers use struct only for POD classes and use class for all other classes .
My questions here are:
Thanks.
The other difference is that
template<class T> ...
is allowed, but
template<struct T> ...
is not.
You could prove to yourself that there is no other difference by trying to define a function in a struct. I remember even my college professor who was teaching about structs and classes in C++ was surprised to learn this (after being corrected by a student). I believe it, though. It was kind of amusing. The professor kept saying what the differences were and the student kept saying "actually you can do that in a struct too". Finally the prof. asked "OK, what is the difference" and the student informed him that the only difference was the default accessibility of members.
A quick Google search suggests that POD stands for "Plain Old Data".
POD classes are Plain-Old data classes that have only data members and nothing else. There are a few questions on stackoverflow about the same. Find one here.
Also, you can have functions as members of structs in C++ but not in C. You need to have pointers to functions as members in structs in C.
链接地址: http://www.djcxy.com/p/40304.html上一篇: 为什么我更喜欢使用成员初始化列表?
下一篇: 结构与类