Описание тега return-by-reference
1
ответ
Функция C++ возвращает действительный объект "по ссылке" после уничтожения
Я использую компилятор Visual Studio 2010, и я пытаюсь понять вывод этой программы. Код: #include <iostream> using namespace std; class A { public: int i; A() { i=0; cout<<"constructing A..\n"; } A(int a): i(a) { cout<<"constructin…
02 июл '16 в 14:45
7
ответов
Схема прохождения по ссылке
Как я могу передать переменную по ссылке в схеме? Пример функциональности, которую я хочу: (define foo (lambda (&x) (set! x 5))) (define y 2) (foo y) (display y) ;outputs: 5 Кроме того, есть ли способ вернуться по ссылке?
16 июл '10 в 05:17
1
ответ
Странное использование unique_ptr
Я вижу некоторый код, который использует unique_ptr в некоторых странных отношениях, я не уверен, что это даже законно, хотя кажется, что он хорошо компилируется на g++ с -std=c++0x #include <memory> #include <boost/unordered_map.hpp> ty…
18 янв '13 в 06:32
5
ответов
C++ Возвращаемое значение, ссылка, константная ссылка
Можете ли вы объяснить мне разницу между возвращаемым значением, ссылкой на значение и константной ссылкой на значение? Значение: Vector2D operator += (const Vector2D& vector) { this->x += vector.x; this->y += vector.y; return *this; } Нек…
14 фев '14 в 11:23
3
ответа
C++, возвращающий ссылку на объект
Я в настоящее время на курсе C++ и я борюсь с ссылками. Я знаю, что есть некоторые похожие темы, но я не смог найти ответ на этот вопрос. Дело в том, что мой Проф хочет, чтобы мы использовали ссылки при возврате объектов, поэтому возврат по значению…
20 сен '15 в 23:11
3
ответа
Как я могу создать список динамических объектов в C++
У меня есть эта простая программа на C++ #include <iostream> #include <string> #include <list> using namespace std; class test { private: string _name; list<test*> _list; public: test(const string& S): _name(S) { this->…
25 янв '17 в 19:12
3
ответа
Почему мы можем возвращать ссылки на переменные-члены класса
Я хочу понять, почему можно вернуть ссылку на переменную члена класса в C++, например, в следующем примере: class Foo { int x; public: int& get_pvar() { return x; }}; По-видимому, мы можем получить доступ к переменной x в main(), создать ссылку …
02 дек '18 в 07:12
1
ответ
Медленный возврат статического вектора по ссылке
Я настраивал кеш для рисования фигур. Мой подход был следующим: Я создал класс OrbitCacheManager.h, который выглядел так: #ifndef OrbitCacheManager_h #define OrbitCacheManager_h #include <vector> #include "cache_0_0.h" #include "cache_1_0.h" /…
04 дек '18 в 15:16
9
ответов
C++: возвращение по ссылке и копирование конструкторов
Ссылки на C++ сбивают меня с толку.:) Основная идея заключается в том, что я пытаюсь вернуть объект из функции. Я хотел бы сделать это без возврата указателя (потому что тогда мне придется вручную delete это), и без вызова конструктора копирования, …
16 фев '10 в 15:08
2
ответа
Fortran 2008: Как возвращаются возвращаемые значения функции?
Возможно ли в современном Фортране вернуть массив из функции с производительностью, эквивалентной подпрограмме, заполняющей массив, переданный в качестве аргумента? Рассмотрим, например, как простой пример PROGRAM PRETURN INTEGER :: C(5) C = FUNC() …
21 июн '16 в 14:22
2
ответа
Перегрузка оператора ссылкой или значением C++
Я видел много уроков и пытался найти ответ на stackru, но безуспешно. В чем я не уверен, так это Есть ли какая-то практика, когда возвращать по значению или по ссылке, при перегрузке оператора? Например, Class &operator+(){ Class obj; //... retu…
28 апр '16 в 07:43
1
ответ
Вернуть указатель на локальную переменную?? (предупреждение C4172)
Ну, визуальная студия дает мне предупреждение. Я понимаю предупреждение и знаю, что это не ошибка. Однако я не понимаю, ПОЧЕМУ я вижу предупреждение - и, что еще хуже, я не понимаю, как предотвратить / какие потенциальные проблемы оно может дать. Ко…
17 апр '13 в 13:33
3
ответа
Оптимальный способ вернуть локальное значение в C++11
В старые времена, если бы я хотел строковое представление объекта AЯ бы написал что-нибудь с подписью void to_string(const A& a, string& out) чтобы избежать лишних копий. Является ли это все еще лучшей практикой в C++11 с семантикой переме…
26 авг '13 в 15:12
2
ответа
Вернуть ссылку на *this без конструктора копирования?
Я написал класс, подобный следующему: class ScriptThread { public: ScriptThread(): mParent() {} private: ScriptThread(ScriptThread *parent): mParent(parent) {} public: ScriptThread(ScriptThread &&rhs); ScriptThread &operator = (ScriptThr…
21 июл '15 в 18:07
0
ответов
C++: ссылки и переносимость
Я пишу плагин хоста. Когда плагин загружен, он получает указатель на таблицу функций. Иногда я хочу создать свободный интерфейс, например так: typedef struct{} *ht_MenuNode; struct iMenuNode { struct iEditor { typedef iEditor *t_loopback; t_loopback…
03 мар '12 в 13:28
9
ответов
Что означает int& foo() в C++?
Когда я читал это объяснение о lvalues и rvalues, мне показались следующие строки кода: int& foo(); foo() = 42; // OK, foo() is an lvalue Я пробовал это в g++, но компилятор говорит "неопределенная ссылка на foo()". Если я добавлю int foo() { …
07 апр '16 в 13:23
6
ответов
Перегруженный оператор [] в шаблонном классе в C++ с версиями const / nonconst
Фью, это был длинный титул. Вот моя проблема. У меня есть шаблонный класс в C++, и я перегружаю оператор []. У меня есть как константная, так и неконстантная версия, причем неконстантная версия возвращается по ссылке, так что элементы в классе могут…
11 авг '10 в 13:37
2
ответа
C++ возврат по ссылке, каковы эффекты?
Возьмите следующий код, где функция возвращается по ссылке: #include <cstdio> using namespace std; int & myFunction(int & input) { return input; } int main() { int x; int y = 10; x = myFunction(y); printf("x is %d\n",x); // x is 10 pri…
18 окт '16 в 09:25
2
ответа
Избегать копирования по значению при инициализации ссылки
У меня есть интерфейс функции: struct iFace { virtual Type& getType() = 0; } и идея состоит в том, чтобы получить это как: iFace& iface = getIface(); Type& type = iface.getType(); однако иногда я делаю ошибку и пишу: Type type = iface.ge…
27 апр '11 в 21:14
1
ответ
Почему возврат по ссылке быстрее, чем возврат по значению?
class A { int x,y; public: A(int a=0,int b=0) {x=a;y=b;} /* ... */ } A& fctr() { A loc(1,2); return loc; } Давайте рассмотрим эту инструкцию: A x=fctr(); fctr() возвращая ссылку на уничтоженный объект... << это не проблема -_- В приведенной выше…
12 авг '13 в 17:23