L
lovecreatesbeauty
Perhaps all C++ programmers are busy in designing their classes or get
into a deep sleep after a through night hard work. So I am willing to
ask the "off-topic" (perhaps not) question in this group. I think you
understand both C and C++ entirely, if not, why you still work on the C
programming language. And you are experts on both them, so it is not
off-topic at all. I need your help.
Please let us go into the topic.
I'm disturbed on this question for a long time. I think if I finally
get understand it with your kind help, I will get close to a excellent
C++ programmer. And I only can rely on your expertise and help. I've
read some books, but no book focuses on this. Don't you think it is a
very important thing of C++ programming language? So your knowledge is
of great benefit to others, especially me.
1. Which (How many) members will be created automatically?
Scott Meyers seems to give this list in a early print of his
<<effective C++, 2nd>>, but he removed 1 (or 2, perhaps you know it),
the list containing 6 members he gives is:
default constructor, copy constructor, destructor, assignment
operator, a pair of address-of operators (i.e. const, non-const) .
But in a later print (not a new edition, I don't read the 3rd one) he
removed the last pair of operators from that list without a detail
description, or he put that pair in that list before without a
thoroughly convinced reason. That is my complaint.
Dr. Bjarne Stroustrup mentioned operator , (i.e. comma) is also a
predefined member (he mentioned total 3: =, &, and , in TC++PL sec
11.2.2), but Andrew Koenig said "That is not a member function." in my
post before. Obviously, it is inside a class body, so I do not
understand what he said.
Herb Sutter mentioned &&, || and , (comma) in his new book C++ coding
standard. But he did not give a complete list of automatically created
class members also. He always talks about some magic things on usage of
vector, list or some similar things with gurus. That is my complaint.
How about new and delete, and some others functions or operators which
I do not know the name. Who will give a complete list?
2. Which (How many) members can not be inherited?
I know default ctor, copy ctor, dctor, assignment operator can not be
inherited. The first three members share the same name respectively
even the base class name and the derived class name are different - it
is obvious, but it helps me to understand the reason of non-inherited.
I can understand operator assignment will not be inherited also.
But I am not sure if there are other members also can not be inherited.
How about new and delete, and some others functions or operators which
I do not know the name. Who will give a complete list?
Sincerely,
lovecreatesbeauty
into a deep sleep after a through night hard work. So I am willing to
ask the "off-topic" (perhaps not) question in this group. I think you
understand both C and C++ entirely, if not, why you still work on the C
programming language. And you are experts on both them, so it is not
off-topic at all. I need your help.
Please let us go into the topic.
I'm disturbed on this question for a long time. I think if I finally
get understand it with your kind help, I will get close to a excellent
C++ programmer. And I only can rely on your expertise and help. I've
read some books, but no book focuses on this. Don't you think it is a
very important thing of C++ programming language? So your knowledge is
of great benefit to others, especially me.
1. Which (How many) members will be created automatically?
Scott Meyers seems to give this list in a early print of his
<<effective C++, 2nd>>, but he removed 1 (or 2, perhaps you know it),
the list containing 6 members he gives is:
default constructor, copy constructor, destructor, assignment
operator, a pair of address-of operators (i.e. const, non-const) .
But in a later print (not a new edition, I don't read the 3rd one) he
removed the last pair of operators from that list without a detail
description, or he put that pair in that list before without a
thoroughly convinced reason. That is my complaint.
Dr. Bjarne Stroustrup mentioned operator , (i.e. comma) is also a
predefined member (he mentioned total 3: =, &, and , in TC++PL sec
11.2.2), but Andrew Koenig said "That is not a member function." in my
post before. Obviously, it is inside a class body, so I do not
understand what he said.
Herb Sutter mentioned &&, || and , (comma) in his new book C++ coding
standard. But he did not give a complete list of automatically created
class members also. He always talks about some magic things on usage of
vector, list or some similar things with gurus. That is my complaint.
How about new and delete, and some others functions or operators which
I do not know the name. Who will give a complete list?
2. Which (How many) members can not be inherited?
I know default ctor, copy ctor, dctor, assignment operator can not be
inherited. The first three members share the same name respectively
even the base class name and the derived class name are different - it
is obvious, but it helps me to understand the reason of non-inherited.
I can understand operator assignment will not be inherited also.
But I am not sure if there are other members also can not be inherited.
How about new and delete, and some others functions or operators which
I do not know the name. Who will give a complete list?
Sincerely,
lovecreatesbeauty