Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
rolandas
21 / 10 / 2
Регистрация: 20.04.2011
Сообщений: 175
#1

Как в классе записать возвращаемую строковую переменную? - C++

13.11.2016, 18:39. Просмотров 461. Ответов 22
Метки нет (Все метки)


http://www.cyberforum.ru/cpp-beginners/thread1670702.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2016, 18:39
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как в классе записать возвращаемую строковую переменную? (C++):

Как записать возвращаемую функцию получения определенных папок?
Получаю папку Temp, и хочу сделать возвращаемую функцию но не получается, как...

Как в классе создать строковую константу?
Как в классе создать строковую константу? Конструкция типа static const char...

Как объявить строковую переменную?
которой в процессе выполнения программы будут присваиваться разные значения....

Как определить строковую переменную?
Првиет всем! Ситуация такая.Мне нужно что бы введенная строка загрузилась в...

Как добавить несколько символов в строковую переменную?
как добавить несколько символов в строковую переменную?

22
nmcf
6237 / 5549 / 2524
Регистрация: 14.04.2014
Сообщений: 23,331
13.11.2016, 18:41 #2
Эти массивы сделай static. Инициализация вне класса.
Ну либо в конструкторе это делай.
0
rolandas
21 / 10 / 2
Регистрация: 20.04.2011
Сообщений: 175
13.11.2016, 18:59  [ТС] #3
вне класса так?

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
 
static std::string x[11] = { "Vova", "Misha", "Vasya" };
static std::string y[11] = { "Katya", "Olya", "Kristina" };
 
class Stress
 
    {
 
public:
};
и как вернуть и обращатся теперь из

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include "class_string.h"
using namespace std;
int main()
{
    Stress objStress;
 
    std::cout << "\n Imya : " << objStress.x[1];
    std::cout << "\n Korovia vymya : " << objStress.y[1];
 
    return 0;
}
0
nmcf
6237 / 5549 / 2524
Регистрация: 14.04.2014
Сообщений: 23,331
13.11.2016, 19:24 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Stress
{
public:
static std::string x[11];
static std::string y[11];
};
 
std::string Stress::x[11] = { "Vova", "Misha", "Vasya" };
std::string Stress::y[11] = { "Katya", "Olya", "Kristina" };
 
int main
{
//...
}
1
rikimaru2013
C++ Game Dev
2471 / 1140 / 348
Регистрация: 30.11.2013
Сообщений: 3,709
13.11.2016, 19:28 #5
Цитата Сообщение от nmcf Посмотреть сообщение
Эти массивы сделай static. Инициализация вне класса.
а чем тот ТСа вариант не подходит?
0
nmcf
6237 / 5549 / 2524
Регистрация: 14.04.2014
Сообщений: 23,331
13.11.2016, 19:33 #6
rikimaru2013, ну там он вписал прямо в класс. Если не работает, пусть сделает отдельно.
0
rolandas
21 / 10 / 2
Регистрация: 20.04.2011
Сообщений: 175
13.11.2016, 20:07  [ТС] #7
не понял

как в фаиле class_string.h но вне классе сделать?
0
nmcf
6237 / 5549 / 2524
Регистрация: 14.04.2014
Сообщений: 23,331
13.11.2016, 20:24 #8
Класс у тебя в h-файле, а инициализация должна быть в cpp вместе с функциями-членами.
0
rolandas
21 / 10 / 2
Регистрация: 20.04.2011
Сообщений: 175
13.11.2016, 20:39  [ТС] #9
просто хранить в файле с классом строковую переменную и из cpp файлов считывать и присваивать в том же cpp

самый простой примерчик пожалуйсто
0
nmcf
6237 / 5549 / 2524
Регистрация: 14.04.2014
Сообщений: 23,331
13.11.2016, 20:40 #10
Пример уже был. Выше смотри.
0
rolandas
21 / 10 / 2
Регистрация: 20.04.2011
Сообщений: 175
13.11.2016, 20:50  [ТС] #11
да, получилось без ругания компилятора

class_string.h
C++
1
2
3
4
5
6
7
#include <iostream>
using namespace std;
class Stress {
public:
    static std::string x[11];
    static std::string y[11];
};
class_string.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include "class_string.h"
using namespace std;
 
std::string Stress::x[11] = { "Vova", "Misha", "Vasya" };
std::string Stress::y[11] = { "Katya", "Olya", "Kristina" };
 
int main()
{
    Stress objStress;
 
    std::cout << "\n Imya : " << objStress.x[1];
    std::cout << "\n Korovia vymya : " << objStress.y[1];
 
    return 0;
}
но я об таком, чтоб само значение массива хранилось в файле класса
0
nmcf
6237 / 5549 / 2524
Регистрация: 14.04.2014
Сообщений: 23,331
13.11.2016, 22:28 #12
Ну оно и так там хранится: у тебя должна быть пара файлов h и cpp для класса и ещё cpp для main().
0
rolandas
21 / 10 / 2
Регистрация: 20.04.2011
Сообщений: 175
13.11.2016, 22:36  [ТС] #13
a только с двумя файлами никак?
0
nmcf
6237 / 5549 / 2524
Регистрация: 14.04.2014
Сообщений: 23,331
13.11.2016, 22:50 #14
Ну у тебя же с двумя работает? Но по-правильному должно быть три.
Реализация функций-членов в своём cpp делается. У тебя их просто нет.
0
rolandas
21 / 10 / 2
Регистрация: 20.04.2011
Сообщений: 175
13.11.2016, 23:22  [ТС] #15
но можно сделать в файле с классом ещё и хранение переменных с значениями
а из cpp считывать ?
0
nmcf
6237 / 5549 / 2524
Регистрация: 14.04.2014
Сообщений: 23,331
13.11.2016, 23:30 #16
Лучше оставь над main().
0
rolandas
21 / 10 / 2
Регистрация: 20.04.2011
Сообщений: 175
14.11.2016, 15:12  [ТС] #17
нет, у меня задание разместить заполненый строкоой массив в отдельном файле с классом.
извиняюсь за вопрос, но может можно в файле с классом разместить текст и считывать с него
командами std::istream::read ifstream myfile ("class.h"); ?
0
nmcf
6237 / 5549 / 2524
Регистрация: 14.04.2014
Сообщений: 23,331
14.11.2016, 16:36 #18
Тебе, что, 2 файла для класса запретили сделать? Ну вот и добавь cpp.
0
rolandas
21 / 10 / 2
Регистрация: 20.04.2011
Сообщений: 175
14.11.2016, 16:41  [ТС] #19
в задании - сделать именно с двумя файлами, один с классом а другой cpp исполняемый.
все работает но как то неправвильно, компилятор предупреждает:
Car.h [Warning] non-static data member initializers only available with -std=c++11 or -std=gnu++11
Car.h [Warning] extended initializer lists only available with -std=c++11 or -std=gnu++11
0
nmcf
6237 / 5549 / 2524
Регистрация: 14.04.2014
Сообщений: 23,331
14.11.2016, 16:47 #20
Ты слишком буквально понимаешь задание, важно разделить на файлы, а не считать их.
0
14.11.2016, 16:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2016, 16:47
Привет! Вот еще темы с решениями:

Как обьявить переменную в одном классе и что бы ее было видно в дочернем классе
У меня есть основной класс с названием Root один из его членов наследует...

Не могу вывести строковую переменную
Привет :) Писал программу, обнаружил что не могу вывести строковую переменную...

Текст итема предать в строковую переменную
Есть главное окно(диалог), в нем listBox Как по нажатию пункта меню(обработчик...

Как объявить переменную в классе?
Доброго времени суток. Как правильно объявить переменную в private: Делаю так:...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

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