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

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

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

как в классе записать возвращаемую строковую переменную?
программа работает но ругается warning

class_string.h

C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
using namespace std;
 
class Stress
 
    {
 
public:
    std::string x[11] = { "Vova", "Misha", "Vasya" };
    std::string y[11] = { "Katya", "Olya", "Kristina" };
};
class_string.cpp

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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2016, 18:39
Ответы с готовыми решениями:

Записать каждое слова текста в отдельную строковую переменную
Приветствую. Есть n количество слов в тексте, разделены пробелом. Как можно...

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

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

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

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

22
nmcf
6515 / 5744 / 2617
Регистрация: 14.04.2014
Сообщений: 24,494
13.11.2016, 18:41 2
Эти массивы сделай static. Инициализация вне класса.
Ну либо в конструкторе это делай.
0
rolandas
21 / 10 / 2
Регистрация: 20.04.2011
Сообщений: 209
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
6515 / 5744 / 2617
Регистрация: 14.04.2014
Сообщений: 24,494
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
2473 / 1141 / 349
Регистрация: 30.11.2013
Сообщений: 3,709
13.11.2016, 19:28 5
Цитата Сообщение от nmcf Посмотреть сообщение
Эти массивы сделай static. Инициализация вне класса.
а чем тот ТСа вариант не подходит?
0
nmcf
6515 / 5744 / 2617
Регистрация: 14.04.2014
Сообщений: 24,494
13.11.2016, 19:33 6
rikimaru2013, ну там он вписал прямо в класс. Если не работает, пусть сделает отдельно.
0
rolandas
21 / 10 / 2
Регистрация: 20.04.2011
Сообщений: 209
13.11.2016, 20:07  [ТС] 7
не понял

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

самый простой примерчик пожалуйсто
0
nmcf
6515 / 5744 / 2617
Регистрация: 14.04.2014
Сообщений: 24,494
13.11.2016, 20:40 10
Пример уже был. Выше смотри.
0
rolandas
21 / 10 / 2
Регистрация: 20.04.2011
Сообщений: 209
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
6515 / 5744 / 2617
Регистрация: 14.04.2014
Сообщений: 24,494
13.11.2016, 22:28 12
Ну оно и так там хранится: у тебя должна быть пара файлов h и cpp для класса и ещё cpp для main().
0
rolandas
21 / 10 / 2
Регистрация: 20.04.2011
Сообщений: 209
13.11.2016, 22:36  [ТС] 13
a только с двумя файлами никак?
0
nmcf
6515 / 5744 / 2617
Регистрация: 14.04.2014
Сообщений: 24,494
13.11.2016, 22:50 14
Ну у тебя же с двумя работает? Но по-правильному должно быть три.
Реализация функций-членов в своём cpp делается. У тебя их просто нет.
0
rolandas
21 / 10 / 2
Регистрация: 20.04.2011
Сообщений: 209
13.11.2016, 23:22  [ТС] 15
но можно сделать в файле с классом ещё и хранение переменных с значениями
а из cpp считывать ?
0
nmcf
6515 / 5744 / 2617
Регистрация: 14.04.2014
Сообщений: 24,494
13.11.2016, 23:30 16
Лучше оставь над main().
0
rolandas
21 / 10 / 2
Регистрация: 20.04.2011
Сообщений: 209
14.11.2016, 15:12  [ТС] 17
нет, у меня задание разместить заполненый строкоой массив в отдельном файле с классом.
извиняюсь за вопрос, но может можно в файле с классом разместить текст и считывать с него
командами std::istream::read ifstream myfile ("class.h"); ?
0
nmcf
6515 / 5744 / 2617
Регистрация: 14.04.2014
Сообщений: 24,494
14.11.2016, 16:36 18
Тебе, что, 2 файла для класса запретили сделать? Ну вот и добавь cpp.
0
rolandas
21 / 10 / 2
Регистрация: 20.04.2011
Сообщений: 209
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
6515 / 5744 / 2617
Регистрация: 14.04.2014
Сообщений: 24,494
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 один из его членов наследует...

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


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

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

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