Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2017, 22:53   #1
Кот Баюн
Пользователь
 
Регистрация: 05.07.2017
Сообщений: 14
По умолчанию Не получается присвоить значение полю объекта.

Код:
#include <iostream>
#include <math>
#include <conio.h>
using namespace std;

class Tiles   {
public:
  char brand;
  int size_w,size_g,price;
  void Getdata();
};


int main()
{
Tiles arg;
arg.brand = 'Gnomiki';
arg.size_w = 10 ;
arg.size_g = 20;
arg.price = 100;
 arg.Getdata();
getch();

return 0;

}


void Tiles::Getdata()
{
//cout<<"brand: "<< brand;
cout <<"size :  "<< size_w;
cout<<"size :  "<< size_g;
cout<<"price :  "<< price;
}
______________________
Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум.

Последний раз редактировалось Alex11223; 31.07.2017 в 22:58.
Кот Баюн вне форума Ответить с цитированием
Старый 31.07.2017, 22:54   #2
Кот Баюн
Пользователь
 
Регистрация: 05.07.2017
Сообщений: 14
По умолчанию

Вот пишет такую ошибку в этом месте.
Изображения
Тип файла: jpg Поле.jpg (59.1 Кб, 125 просмотров)
Кот Баюн вне форума Ответить с цитированием
Старый 31.07.2017, 22:55   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Почему вы в один символ пытаетесь запихнуть строку?
p51x вне форума Ответить с цитированием
Старый 31.07.2017, 22:57   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

char это 1 символ.
Строка это std::string или char* (указатель).
И " вместо '.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 01.08.2017, 14:24   #5
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 734
По умолчанию

Цитата:
Сообщение от Кот Баюн Посмотреть сообщение
Код:
char brand;
- Вот это не правильно, ну они уже сказали в принципе, тогда ладно. Надо писать вот так:
Код:
char *brand;
Потом присваиваешь строку, возможно даже придется использовать функцию strcpy().
И строка будет у Вас Null Terminated String, т.е. заканчиваться вот таким вот символом:"\0".
Надо писать вот так:
Код:
char *str = "Образец строки.\0";
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.

Последний раз редактировалось Cuprum5; 01.08.2017 в 14:27.
Cuprum5 вне форума Ответить с цитированием
Старый 01.08.2017, 14:35   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Можно. А вот strcpy как раз нельзя.

А вообще не надо писать так, надо так:
Код:
std::string brand;
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 01.08.2017, 15:05   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

И \0 в "" тоже пихать не стоит, компилятор сам подставит.
p51x вне форума Ответить с цитированием
Старый 01.08.2017, 18:08   #8
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Значение полю объекта присваивается средствами объекта либо конструктора класса.
Строка типа char это массив.

Последний раз редактировалось KAMLS; 01.08.2017 в 18:11.
KAMLS вне форума Ответить с цитированием
Старый 01.08.2017, 21:26   #9
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Cuprum5 Посмотреть сообщение
Надо писать вот так:
Код:
char *str = "Образец строки.\0";
не надо так писать.

1.
нужны особые причины,
что бы использовать национальные символы в исходниках.
при этом сам исходник должен быть в утф-8
а строка юникодная: L"привет"

2.
нельзя присваивать константную строчку
обычному указателю.
тогда уж:
Код:
const char* str = "sample";
3.
не нужно добавлять нолик в конце.
компилятор итак добавляет нуль-терминатор
для литерных констант.

лучше всего писать так:
Код:
const auto& str = "hello";
в этом случае, str будет неизменяемым массивом.
что наилучшем образом,
со всем вытекающим профитом характеризует исходную строку.

это не касается примера кода ТС.
для brand лучше всего сделать std::string
_Bers вне форума Ответить с цитированием
Старый 01.08.2017, 21:30   #10
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
Сообщение от _Bers Посмотреть сообщение
const auto& str = "hello";
Или std::string_view
Croessmah вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как присвоить выбранное в поле значение другому полю в форме??? iriska_22 Microsoft Office Access 1 03.07.2013 12:36
Движение объекта по полю в мультиплеерной игре Linel Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 23.12.2012 17:06
Не могу присвоить полю структуры значение NULL (язык Си, Visual Studio) COOLik123 Помощь студентам 10 16.09.2012 19:33
как присвоить полю из БД значение из combobox (Delphi) Ilya130190 Помощь студентам 1 13.03.2012 10:48
как в Delphi присвоить полю DBEdit целочисленное значение поля из DBText (как правильно )? ГОСЕАН Помощь студентам 0 10.01.2012 06:12