reference相关内容
这是已知C ++的特性,const引用扩展从函数返回的临时对象的生命周期,但是使用常量引用从函数返回的临时对象的成员也可以接受? 示例: #include getPair(int n) { return {std :: to_string(n),n}; } int main(int
..
根据我最近的问题中的讨论(为什么一个c ++引用被认为比一个指针更安全?),它引发了另一个问题:在c ++中引入引用的原因是什么? 解决方案 Stroustrup的第3.7部分 C ++的设计与进化描述引入到语言中的引用。如果你对C ++的任何特性背后的理由感兴趣,我强烈推荐这本书。 引用主要是为了支持操作符重载。 Doug McIlroy回忆说,一旦我解释了当前操作符重载方案给他的
..
为什么返回对指向的成员变量的引用工作,而不是其他变量工作?我知道一个 const 成员函数应该只返回 const 引用,但为什么这不似乎真的指针? / p> class MyClass { private: int * a; int b; public: MyClass(){a = new int; } 〜MyClass(){delete a; } int& g
..
我遇到了一个代码片段。 const int& reference_to_const_int = 20; cout
..
我是一个C ++ noob,我有一个问题,在代码中理解c ++语法。现在我很困惑。 类日期 { 私人: int天,月,年; int correct_date(void); public: void set_date(int d,int m,int y); void actual(void); void print(void); void inc(void); f
..
简介 void read_foo(std :: ifstream& out); void write_foo(std :: ofstream& out); 我有这两个函数,其中一个应该从文件读取, $ b 一切正常,具有以下片段; std :: ifstream ifs(“filename.txt”); read_foo(ifs);
..
当有一个抽象类的引用时,是什么意思? 我在代码中找到它,我不能低估它。 我认为抽象类不能被实例化。 解决方案 对抽象类的引用就像是一个指向抽象类的指针:需要引用抽象类的一些非抽象子类的对象。您可以使用类似于Java中的接口的指针,使用。语法,在引用类上调用virtual方法。
..
我知道有类似的问题,但没有一个给我一个确定的答案我的问题... 这些都是最好的做法吗?或者我应该返回一个指针? 如果不是应该如何改变以遵循最佳实践。 我想从函数返回一个新对象的引用。我的实现如下: MyClass& doSomething(){ return *(new MyClass()); } MyClass a = doSomething();这是正常的,因
..
void DoWork(int n); void DoWork(const int& n); 有什么区别 解决方案 当你传递一个大的结构/类时,区别更为突出。 struct MyData { int a,b,c,d,e,f,g,h; long array [1234]; }; void DoWork(MyData md); void DoW
..
在C ++中,是否可以通过引用扩展范围? 在代码中,我的意思是: MyCLass& function badIdea() { MyClass obj1; ... return obj1; } 解决方案 范围通过引用。 C ++中的对象不被引用计数,当obj1超出范围它会被删除,参考badIdea()的结果只会让你陷入麻烦
..
考虑如下情况:当启用move语义的“整个”对象从函数返回时,如 std :: basic_string : std :: wstring build_report()const { std :: wstring report; ... 返回报告; } 然后我可以真正地期望做出“最好的” (std :: move(build_report()))中返回
..
这是一个一般的程序设计问题。我正在学习C ++,我已经知道任何const变量,例如: const int i 或 int * const ptr ,必须立即初始化。 这也是引用地址必须立即初始化的根本原因,因为地址 const 。 但是我找不到为什么必须这样做的原因/ 任何人都可以为我解释这个问题吗? 解决方案 可以初始化它,或在稍后分配一个值。 const in
..
在C ++中是否合法? 据我所知,引用 ,所以应该是合法的。 但我认为引用不能合法地反弹...他们可以吗? template struct引用 { T& r; 参考(T& r):r(r){} }; int main() { int x = 5,y = 6; 参考 r(x); new(& r)Reference
..
为什么需要 std :: reference_wrapper ?应该在哪里使用?它和一个简单的指针有什么不同?它的性能如何与简单的指针相比? 解决方案 std :: reference_wrapper 与模板组合使用。它通过存储一个指针来包装一个对象,允许重新分配和复制,同时模仿它的通常的语义。它还指示某些库模板存储引用而不是对象。 考虑STL中的复制函子的算法:你可以通过简单地传递
..
如何将指针( Object * ob )传递给原型为 void foo(Object&)的函数? 解决方案 这样调用: foo ); 请注意,根据您的问题标题中的建议,此处没有投射。我们所做的都是去引用对象的指针,然后我们传递给函数。
..
有关为什么必须从函数返回引用的问题。 以下代码的行为完全相同,如果我们替换 在我的示例中是真的。 代码,返回引用对价值没有关系吗?在什么样的例子中它会开始重要? 在我看来,我们无法返回函数的局部变量的引用,因为局部变量将超出调用者的范围。因此,它只有返回一个变量的引用,调用者可以看到(在范围内),但是如果函数的调用者可以看到变量,那么它不需要返回(?)(或者是返回) 相关
..
我有一个特殊类型的ostringstream,我试图输出文本作为一个临时对象,但我有一些麻烦。要明确,这实际上是我想要做的: ostringstream()
..
乳清我们不能将指针转换为字符 - > TO->指向常量字符的指针 我有兴趣了解语法错误的原因当我们调用foo_ptr。当foo_char被允许为什么不foo_ptr。 [更新1.]我会很高兴知道 foo_char()工作的原因,为什么 foo_ptr()不工作..当指针进入图片时会发生什么。 [更新2.] 无法在Dev C ++编译器版本4.9.9.2中使用。 // c
..
所以我一直在想(在阅读这个Java pdf)... 我知道这可能看起来很蠢,但为什么我不能这样做在c + 。 float& f = new float; 这不是说f的引用是新float的地址? 在Java中,我看到了这样的东西。 String s = new String “) String s 参考。 Java中的
..
为什么这段代码在Code :: block中成功运行。 IDB只是报告 警告:“引用本地变量'tmp'返回”, 但输出结果“hello world”成功。 #include #include using namespace std; const string& getString(const string& s) { s
..