由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 刚看完类这一章,有些大小问题,请指教,谢谢
相关主题
C++的"初始化"小结突然想到一个老题,构造函数n多变量初始化
问个a=b 的问题经过两个月,矩阵库基本完成,c++11就是好
C++编程原则的问题C编译器为何允许一个函数在某个路径不返回值?
simple question on C++ initialization listR似乎根本就没有认真考虑过global variable的改写问题
[求教大虾]关于C++编译期变量和运行期变量的区别,总是有疑惑C++一问
c++如果调用没参数的函数不用加()就好了为啥允许这样的const设计
帮忙找个错copy constructor问题。
请教c++数组初始化请问C++如何初始化类时就传入一个数组参数
相关话题的讨论汇总
话题: 常量话题: 初始化话题: 成员话题: 返回值话题: 函数
进入Programming版参与讨论
1 (共1页)
k**********3
发帖数: 3
1
关于类的疑问
1,在类的定义中,即在class的大括号里,是不是只能放函数定义,函数声明,变量定
义,变量声明这四类语句?
2,在private部分可以放函数定义或申明吗?同理在public可以放变量声明或定义吗?
3,某对象的成员函数可以访问同类的其他对象的数据(通过传入引用),无论其是
private or public,但是不能访问不同类型对象的private数据,但是可以访问其
public数据?
4,我看的书是《c++程序设计语言特别版》,在看类时(P203),发现他在声明成员函数
,若没有参数,也不写void,而是直接一个空括号,如果没有返回值 也不写void,还有
,是不是构造函数都没有返回值?
5,成员初始化是不是就两种:用初始化式;或用构造函数,且前者优先级高?用初始化
式什么意思,直接在成员变量申明的时候直接赋值语句吗?
6,关于成员常量的问题:
书上说了“对于静态常量整型成员,可在常量成员声明加上一个常量表达式作为初始式
”,但对于其他类型的常量呢?怎么初始化啊?
7,关于自定义类型的数组的初始化
书上也说了,“若在构造某个类的对象时可以不提供显式的初始式,则可以
f*****Q
发帖数: 1912
2
首先最好能在标题或者帖子开头说明是C++,首先声明俺很久不用C++了,不一定说的对
,抛砖引玉。
1,看不懂。
2,函数可以是private,protected或者public。变量也可以是private, protected或
者public。实例变量好像不能在这里定义吧?
3,不能访问同类对象的private part。friend可以访问其他类对象的private part。
子类可以访问父类(不确定是不是这么叫)的protected部分,但是private不行。
4,构造函数没有返回值。没返回值不写void俺不太确定,俺记着没返回值的函数的缺
省返回值是int,不是void。
5,你说的初始化式大概是
classA::ClassA():variableA(0),variableB(4+someOutsideVariable){
...
}

variableA(0),variableB(4+someOutsideVariable)这一部分。
俺记着C++里面类实例变量是不可以在声明的时候直接赋值的。
6,其他的实例变量里面的constant可以在类初始化的时候赋值。
7,看不

【在 k**********3 的大作中提到】
: 关于类的疑问
: 1,在类的定义中,即在class的大括号里,是不是只能放函数定义,函数声明,变量定
: 义,变量声明这四类语句?
: 2,在private部分可以放函数定义或申明吗?同理在public可以放变量声明或定义吗?
: 3,某对象的成员函数可以访问同类的其他对象的数据(通过传入引用),无论其是
: private or public,但是不能访问不同类型对象的private数据,但是可以访问其
: public数据?
: 4,我看的书是《c++程序设计语言特别版》,在看类时(P203),发现他在声明成员函数
: ,若没有参数,也不写void,而是直接一个空括号,如果没有返回值 也不写void,还有
: ,是不是构造函数都没有返回值?

t****t
发帖数: 6806
3

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
你错了. OP说的是对的. 可以access同类对象的private.
构造函数没有返回值, 也不能写返回void.
其它不返回值的函数必须声明void. 如果不写返回类型, 编译是通不过的, 这点和C不
一样. 没有缺省返回什么类型这一说.

【在 f*****Q 的大作中提到】
: 首先最好能在标题或者帖子开头说明是C++,首先声明俺很久不用C++了,不一定说的对
: ,抛砖引玉。
: 1,看不懂。
: 2,函数可以是private,protected或者public。变量也可以是private, protected或
: 者public。实例变量好像不能在这里定义吧?
: 3,不能访问同类对象的private part。friend可以访问其他类对象的private part。
: 子类可以访问父类(不确定是不是这么叫)的protected部分,但是private不行。
: 4,构造函数没有返回值。没返回值不写void俺不太确定,俺记着没返回值的函数的缺
: 省返回值是int,不是void。
: 5,你说的初始化式大概是

t****t
发帖数: 6806
4
6. 我假设你问的是其它类型的*静态*常量. 你必须在别处定义的时候初始化, 比如:
// A.h
#include
class A {
static const std::string s; // declaration
static const int x=0; // declaration and definition
};
// A.cpp
#include "A.h"
const std::string A::s="the constant string"; // definition
const int A::x; // this line is not required. but some compiler may
incorrectly insist on it.

6,关于成员常量的问题:
书上说了“对于静态常量整型成员,可在常量成员声明加上一个常量表达式作为初始式
”,但对于其他类型的常量呢?怎么初始化啊?
7,关于自定义类型的数组的初始化
书上也说了,“若在构造某个类的对象时可以不提供显式的初始式,则可以直接定义,
不必写初始化式

【在 k**********3 的大作中提到】
: 关于类的疑问
: 1,在类的定义中,即在class的大括号里,是不是只能放函数定义,函数声明,变量定
: 义,变量声明这四类语句?
: 2,在private部分可以放函数定义或申明吗?同理在public可以放变量声明或定义吗?
: 3,某对象的成员函数可以访问同类的其他对象的数据(通过传入引用),无论其是
: private or public,但是不能访问不同类型对象的private数据,但是可以访问其
: public数据?
: 4,我看的书是《c++程序设计语言特别版》,在看类时(P203),发现他在声明成员函数
: ,若没有参数,也不写void,而是直接一个空括号,如果没有返回值 也不写void,还有
: ,是不是构造函数都没有返回值?

f*****Q
发帖数: 1912
5
嗯,老大出手肯定错不了。

【在 t****t 的大作中提到】
: 6. 我假设你问的是其它类型的*静态*常量. 你必须在别处定义的时候初始化, 比如:
: // A.h
: #include
: class A {
: static const std::string s; // declaration
: static const int x=0; // declaration and definition
: };
: // A.cpp
: #include "A.h"
: const std::string A::s="the constant string"; // definition

1 (共1页)
进入Programming版参与讨论
相关主题
请问C++如何初始化类时就传入一个数组参数[求教大虾]关于C++编译期变量和运行期变量的区别,总是有疑惑
c++类未完成初始化,如何引用this?c++如果调用没参数的函数不用加()就好了
C++ 里push_back 一问帮忙找个错
C++ auto type是怎么推算的?请教c++数组初始化
C++的"初始化"小结突然想到一个老题,构造函数n多变量初始化
问个a=b 的问题经过两个月,矩阵库基本完成,c++11就是好
C++编程原则的问题C编译器为何允许一个函数在某个路径不返回值?
simple question on C++ initialization listR似乎根本就没有认真考虑过global variable的改写问题
相关话题的讨论汇总
话题: 常量话题: 初始化话题: 成员话题: 返回值话题: 函数