【发布时间】:2009-10-15 12:49:19
【问题描述】:
我有 2 个与同一问题相关的问题:
-
如何返回对属于某个类的向量的引用?
我有这门课:
class sys{ protected: vector<int> s; public: sys(); vector<int>& getS() {return s;} //(1) };(1) 应该返回向量
s的引用。但是,在main():main(){ sys* my_sys = new sys(); vector<int> &t1 = my_sys->getS(); //(2) vector<int> t2 = my_sys->getS(); //(3) ... }-
t1是对s的引用(即,当t1更改时,my_sys.s也会更改)。 -
t2是s的副本(即当t2更改时,my_sys.s 未更改)。
为什么第 (3) 行有效?
-
-
我不希望在课堂之外更改
my_sys.s,但出于效率考虑,我想返回一个引用。我应该把const放在哪里?我试图将第 (1) 行更改为
const vector<int>& getS() {return s;} //(4)但我不确定这是否足够。
【问题讨论】:
标签: c++ reference constants return