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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ElwooD07
0 / 1 / 1
Регистрация: 01.02.2012
Сообщений: 16
#1

Объект класса без аргументов и с ними - C++

01.02.2012, 20:01. Просмотров 489. Ответов 5
Метки нет (Все метки)

Доброго времени суток.
Можно ли сделать так, чтобы:
1. объект класса, вызванный без аргументов, возвращал некое значение, которое в нем содержится.
2. объект класса, вызванный с аргументами, присваивал это значение своей закрытой переменной.
У меня закрытый символьный массив prarr[40] и конструктор:
C++
1
2
3
4
5
6
class params {
prarr[40];
public:
params(char *str="");
//...
};
C++
1
2
3
4
5
6
//Конструктор такого вида лишь инициализирует prarr[]:
params::params(char *str="") {
strcpy(prarr, str);
}
//Но конструктор такого вида объявить нельзя:
&params()
Пробовал перегрузкой круглых скобок но не получается:
C++
1
2
3
4
char operator()(char *str="") {
strcpy(prarr, str);
return prarr;
}
Цель - сделать так, чтобы работало, к примеру, выражение
C++
1
2
params a("abcd");
cout << a;
То есть, чтобы объект возвращал строку.

C++
1
2
3
4
//Я знаю что такая запись бред, из-за того что используется конструктор:
cout << a(); // ,
//а так ничего не выходит:
cout << a;
Подскажите, пожалуйста, как решить эту проблему.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2012, 20:01     Объект класса без аргументов и с ними
Посмотрите здесь:

Создание метода без класса и аргументов разве нельзя ? - C++
Всем доброго времени суток. А разве нельзя создать обычный метод под main без аргументов типа того Ошибка error C3861: LAB5_1_8:...

Можно ли создать объект экспортируемого из DLL класса без лишних манипуляций? - C++
Привет! Есть DLL, экспортирую из неё класс, можно ли в коде, имея header (файл с описанием DLL-ки) этой DLL, создать экземпляр этого...

Приём константных векторов класса, как аргументов в методе другого класса - C++
Есть такой класс: class Order { private: int numberOrder; map &lt;string, int&gt; catalogDish; double totalCost; public: ...

Ошибка компиляции (преобразование объекта класса в объект другого класса) - C++
Друзья, добрый день! Не могу понять почему выдается ошибка компиляции... Прога преобразует доллары США в старые Британские фунты. Но...

как узнать,является данный объект класса А1 наследником класса А2 - C++
Всем привет)есть классы S, A1, A2, B1, B2. Иерархия наследования следующая S - Является родителем для всех классов и он имеет...

Создание статической функции класса, которая принимает экземпляр этого же класса как объект - C++
Привет. Есть такой код class Model { public: Model(); Model(int verticesSize, int facesSize); ~Model(); static void...

Вызов динамического метода класса по указателю на объект класса - C++
Как это можно сделать? И хотелось бы как можно проще.

Индексация массива класса, через объект этого класса - C++
class A{ char c;//? - размер массива public: A(int C){c;} }; int main(){ A a(5);//вносим размер массива getch(); ...

Статический указатель класса на объект этого же класса - C++
Не пойму: что в этом коде не так? #include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; struct A { int x; ...

В конструктор класса передать объект этого класса - C++
Вопрос на засыпку :) Как в конструктор класса передать объект этого класса? Т.е. class A { public: A(const char* s){} ...

при вызове конструктора присваивания надо возвращать ссыль на объект или сам объект. Смысл? Значения нужных полей меняютмся и без этого! - C++
Друзья! Обнаружил пробел в знаниях. Собсно, вопрос в теме. Дополню лишь: поля объекта меняются на нужные значения и безо всякого возврата...

Недопустимый неполный тип , или как передать в функцию указатель на объект класса , или просто объект - C++
Други мои , кодеры. Не могу я ни как передать в функцию объект класса , или что еще лучше(для меня , так как учусь работать с указателями)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
2538 / 1303 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
01.02.2012, 20:03     Объект класса без аргументов и с ними #2
Цитата Сообщение от ElwooD07 Посмотреть сообщение
1. объект класса, вызванный без аргументов, возвращал некое значение, которое в нем содержится.
2. объект класса, вызванный с аргументами, присваивал это значение своей закрытой переменной.
Вам get/set надо реализовать что-ли?
ElwooD07
0 / 1 / 1
Регистрация: 01.02.2012
Сообщений: 16
01.02.2012, 20:05  [ТС]     Объект класса без аргументов и с ними #3
Цитата Сообщение от soon Посмотреть сообщение
Вам get/set надо реализовать что-ли?
Да, но не с помощью вызова функции из объекта, а чтобы класс "по-умолчанию" в инструкции cout << a возвращал свою строку, а с параметром записвал эту строку, т.е. работало бы rapams a("qwerty").
soon
2538 / 1303 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
01.02.2012, 20:12     Объект класса без аргументов и с ними #4
Цитата Сообщение от ElwooD07 Посмотреть сообщение
чтобы класс "по-умолчанию" в инструкции cout << a возвращал свою строку
Можно перегрузить <<.

Цитата Сообщение от ElwooD07 Посмотреть сообщение
а с параметром записвал эту строку, т.е. работало бы rapams a("qwerty").
Обычный конструктор с параметрами.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <cstring>
 
class Foo
{
    char* str;
    
public:
    Foo(const char* s): str(new char [std::strlen(s)])
    {
        std::strcpy(str, s);
    }
    
    ~Foo()
    {
        delete[] str;
    }
    
    friend std::ostream& operator << (std::ostream& stream, const Foo& f)
    {
        stream << f.str;
        return stream;
    }
};
 
int main()
{
    Foo f("abcd");
    std::cout << f << std::endl;
    return 0;
}
ElwooD07
0 / 1 / 1
Регистрация: 01.02.2012
Сообщений: 16
01.02.2012, 20:18  [ТС]     Объект класса без аргументов и с ними #5
Спасибо! Мозгом как-то до перегрузки << не добрался
igorrr37
1641 / 1269 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
02.02.2012, 03:57     Объект класса без аргументов и с ними #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <cstring>
 
class Params
{
public:
    Params(const char* _arr = "")
    {
        strcpy(arr, _arr);
    }
    operator const char*() const
    {
        return arr;
    }
    void operator()(const char* _arr)
    {
        strcpy(arr, _arr);
    }
private:
    char arr[40];
};
 
int main()
{
    Params a = "ghgh";
    std::cout << a << std::endl;
    a("uuuutt");
    std::cout << a << std::endl;
    return 0;
}
Yandex
Объявления
02.02.2012, 03:57     Объект класса без аргументов и с ними
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru