Форум программистов, компьютерный форум CyberForum.ru

Возврат и присвоение объекта из функции без копирования - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нужна подсказка http://www.cyberforum.ru/cpp-beginners/thread980621.html
Обьясните пожалуйста что не так. При компилирование выводит ""Vam bilshe nizh sto rokiv"" //--------------------------------------------------------------------------- #pragma hdrstop #include <iostream> using namespace std; //--------------------------------------------------------------------------- #pragma argsused int main()
C++ Недопустимое косвенное обращение Собственно, текст программы такой: #include <stdio.h> #include <locale.h> #include <math.h> double L; // длина окружности double R; // радиус double S; // площадь круга int main(void) { setlocale(LC_CTYPE, "rus"); http://www.cyberforum.ru/cpp-beginners/thread980616.html
C++ составить makefile
Привет. В общем, у меня такая ситуация. На серваке стоит CentOS, пишу я на g++. Прога использует несколько библиотек, которые еще и лежат в разных местах, одни в /usr/lib, другие в /usr/lib64. В данный момент я компилю всё это дело примерно следующим образом: g++ ololo.cpp -L/usr/lib -L/usr/lib64 -lib1l -lib2l ... Надоело каждый раз перечислять пути и имена библиотек, подскажите, как...
C++ Указатель на массив из n элементов
Всем доброй ночи!:)Кто-то наверное уже спит, а я вот никак не могу понять смысл указателей на массив из n элементов, ведь при увеличения значения указателя, допустим на единицу, он "шагает" через весь массив т.е. переходит на адрес <размер типа массива>*<количество элементов>, для того чтобы увидеть значение элемента массива, на который ссылается указатель, надо произвести двойное разыменование,...
C++ Программа копирует только первых пять символов строки http://www.cyberforum.ru/cpp-beginners/thread980596.html
Помогите пожалуйста,я новичок в програьмировании, нужно скопировать строку размером 25 символов char Symb="abcdefghijklmnoprstuvwxyz" в матрицу , с помощью циклов на с++ вот код функции char **get_Matrix(char **mas, int ROW, int COL, char *str) { int len=strlen(str); for (int i=0; i<ROW; i++) { for (int j=0; j<COL; j++) {
C++ Копирование строки в матрицу символов Помогите пожалуйста,я новичок в програмировании, нужно скопировать строку размером 25 символов char Symb="abcdefghijklmnoprstuvwxyz" в матрицу , с помощью циклов на с++ вот код функции char **get_Matrix(char **mas, int ROW, int COL, char *str) { int len=strlen(str); for (int i=0; i<ROW; i++) { for (int j=0; j<COL; j++) подробнее

Показать сообщение отдельно
Rhoads
0 / 0 / 0
Регистрация: 18.10.2013
Сообщений: 2
18.10.2013, 20:15  [ТС]     Возврат и присвоение объекта из функции без копирования
Цитата Сообщение от Croessmah Посмотреть сообщение
у Вас функция func_B возвращает указатель, а Вы его объекту пытаетесь присвоить.
C++
1
some_struct_type S1 = func_B();
Естественно, пример не рабочий, т.к. мне непонятно как осуществить операцию.

Хотя мне удалось сделать работающую "затычку" - я добавил конструктор такого типа:
C++
1
2
3
4
5
6
7
8
some_struct_type(some_struct_type *S2)
{
    // копируем нужные данные из S2 в this
    this->param1 = S2->param1;
 
    // удаляем S2
    delete S2;
};
Но в этом случае как раз происходит двойное выделение памяти, чего я и хочу избежать.

Цитата Сообщение от Croessmah Посмотреть сообщение
можете в funcA сделать указатель:
C++
1
some_struct_type * S1 = func_B();
Это понятно, но нужно, что бы переменная была не ссылкой.
Тогда при выходе из функции будет автоматически вызываться деструктор объекта some_struct_type (для того и весь сыр бор ).
Это нужно, когда из функции несколько return'ов - в варианте со ссылкой придется перед каждым вставлять delete.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru