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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2013, 15:59   #1
takeNmake
 
Регистрация: 31.03.2013
Сообщений: 7
По умолчанию Массив объектов

Возникла проблема:
Возникает перезапись строки char при обращении к элементу массива объектов класса. То-есть не могу обратиться к новым элементам(показывает предыдущие).
Подскажите, как это можно сделать.
С числами проблем нет, а вот массивы char, не знаю как реализовать.
Вот код:
Код:
include "stdafx.h"
#include <iostream>
 
using namespace std;
class arrayx{
private:
	int clSize;
        int inf_1;
	int inf_2;
	char *inf_3;
public:
	void set(int, int, char*);
	void get();
	arrayx()
	{
	}
	~arrayx()
	{
	}
};

void arrayx::set(int number_1, int number_2, char text[10]){
	inf_1 = number_1;
	inf_2 = number_2;
	inf_3 = text;
}

void arrayx::get(){
	cout<<endl;
	cout<<" Inf_1:"<<inf_1<<endl;
	cout<<" Inf_2:"<<inf_2<<endl;
	cout<<" Inf_3:"<<inf_3;
}

int main(int argc, _TCHAR* argv[]){
	arrayx *x;
	const int size = 2;
	x = new arrayx[size];
	for(int i=0; i<size; i++){
		int number_1;
		cout<<" Input number_1: ";
		cin>>number_1;

		int number_2;
		cout<<" Input number_2: ";
		cin>>number_2;

		char  text[10];
		cout<<" Input the text: ";
		cin>>text;
		x[i].set(number_1, number_2, text);
	}
	
	int iter;
	cout<<endl<<" Input number of record: ";
	cin>>iter;
	x[iter-1].get();
	cin.get();
	cin.get();
	delete []x;
	return 0;
}
Изображения
Тип файла: jpg Print.jpg (11.1 Кб, 120 просмотров)

Последний раз редактировалось Stilet; 20.04.2013 в 21:28.
takeNmake вне форума Ответить с цитированием
Старый 20.04.2013, 17:22   #2
kineziz
Форумчанин
 
Регистрация: 22.12.2011
Сообщений: 378
По умолчанию

Сделайте объявление класса таким:
Код:
class arrayx
{
private:
       int clSize;
       int inf_1;
       int inf_2;
       char inf_3[20];
public:
       void set(int, int, char*);
       void get();
};
А функцию set:
Код:
void arrayx::set(int number_1,int number_2,char* text)
{
       inf_1 = number_1;
       inf_2 = number_2;
       strcat(inf_3,text);
}
По идеи должно убрать проблему с массивами char
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.

Последний раз редактировалось kineziz; 20.04.2013 в 17:24.
kineziz вне форума Ответить с цитированием
Старый 20.04.2013, 17:27   #3
takeNmake
 
Регистрация: 31.03.2013
Сообщений: 7
По умолчанию

Спасибо, попробую)
takeNmake вне форума Ответить с цитированием
Старый 20.04.2013, 17:47   #4
takeNmake
 
Регистрация: 31.03.2013
Сообщений: 7
По умолчанию

kineziz, спасибо за идейку, всё работает, но ты спутал: вместо strcat нужно strcpy))
takeNmake вне форума Ответить с цитированием
Старый 21.04.2013, 18:32   #5
kineziz
Форумчанин
 
Регистрация: 22.12.2011
Сообщений: 378
По умолчанию

Ну да вы правы)))
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
kineziz вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
из файла в массив объектов 123456789igor Общие вопросы по Java, Java SE, Kotlin 2 23.03.2013 21:50
Массив объектов!!! OliverVood Visual C++ 5 24.08.2012 16:03
массив объектов Freddi Krjuger Общие вопросы по Java, Java SE, Kotlin 3 18.02.2011 19:55
Массив объектов _bAd_ Помощь студентам 10 20.01.2010 08:33
массив объектов balamut JavaScript, Ajax 4 29.05.2009 14:49