Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вопрос по перегрузке оператора +

32K
17 марта 2009 года
lexus05
27 / / 02.10.2008
Народ, что я не так сделал?
Я пытался обьединить строчки, используя оператор+:
Код:
#include "stdafx.h"
#include <iostream>
#include <cstring>
using namespace std;

class myclass
{
char *text;
public:
    myclass(char *txt) { text = txt; }
    myclass() { text = "default"; }
    void show() { cout << text << endl; }
    myclass operator+(myclass ob)
    {
        myclass temp;
        temp.text = text;
        strcpy(temp.text, ob.text);
        return temp;
    }
};

int main()
{
myclass ob1("My name ");
myclass ob2("is Lexus.");
myclass ob3;
ob3 = ob1 + ob2;
ob3.show();
return 0;
}
535
17 марта 2009 года
Нездешний
537 / / 17.01.2008
strcpy и strcat -- разные вещи
+ убедиться, что буфер под текст, куда копируешь, достаточного размера
32K
17 марта 2009 года
lexus05
27 / / 02.10.2008
а разве char *text; не выделяет достаточно места?
11
17 марта 2009 года
oxotnik333
2.9K / / 03.08.2007
Цитата: lexus05
а разве char *text; не выделяет достаточно места?


он вообще ничего не выделяет

32K
17 марта 2009 года
lexus05
27 / / 02.10.2008
а как лучше выделить память, какой тип данных использовать для текстов на c++?
11
17 марта 2009 года
oxotnik333
2.9K / / 03.08.2007
Цитата: lexus05
а как лучше выделить память, какой тип данных использовать для текстов на c++?


std::string и не мучайся, там уже все операторы перегружены

32K
17 марта 2009 года
lexus05
27 / / 02.10.2008
мне это необходимо знать для обучения.
11
17 марта 2009 года
oxotnik333
2.9K / / 03.08.2007
Цитата: lexus05
мне это необходимо знать для обучения.


ну выделяй значит предварительно буфер, размером на 1-ю строку и 2-ю, складывай в этот буфер эти строки, удаляй массив text, а потом присваивай ему указатель на свой новый буфер.

240
17 марта 2009 года
aks
2.5K / / 14.07.2006
Кстати, передовать объекты твоего класса в оператор по значению в данном случае тоже не очень хорошо. Передавай хоть по константной ссылке чтоли.
255
18 марта 2009 года
Dart Bobr
1.4K / / 09.04.2004
Цитата: aks
Кстати, передовать объекты твоего класса в оператор по значению в данном случае тоже не очень хорошо. Передавай хоть по константной ссылке чтоли.



Да тут весь код - просто потенциальный источник багов.
На конструкторы аж смотреть страшно.. =/

11
18 марта 2009 года
oxotnik333
2.9K / / 03.08.2007
Цитата: Dart Bobr
Да тут весь код - просто потенциальный источник багов.
На конструкторы аж смотреть страшно.. =/


Учится человек. Чего наезжать то?
большой плюс, что не пишет "памагитя!!!"

32K
18 марта 2009 года
lexus05
27 / / 02.10.2008
Сделай так, сделай этак, и не одного примера. :)))(имеется ввиду кодинга)...
11
18 марта 2009 года
oxotnik333
2.9K / / 03.08.2007
за поиск гуглом по голове не дадут
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог