
29.01.2009, 22:59
|
|
Познавший АНТИЧАТ
Регистрация: 01.06.2008
Сообщений: 1,047
Провел на форуме: 5321514
Репутация:
3313
|
|
w_2k
1. Не используй инлайн функции(это функции, которые определены в самом классе). Их содержимое как-бы копируется на место вызова, что приводит к плохим последствиям. Выноси все отдельно в файл.
2. Не используй srand(time(NULL)); в цикле, т.к идет постоянная привязка к одному и тому же времени. Выноси за цикл.
3. Проблема твоя в том, что ты указываешь статический массив по дефолту. Такое не допустимо при создании объекта. Выделяй память динамически в конструкторе(да и не забудь написать копир конструктора):
PHP код:
#include <stdlib.h>
#include <iostream>
#include <iomanip>
#include <time.h>
using namespace std;
class Koloda
{
private:
int count;
int ** cards;
public:
Koloda(int c){count=c;}
Koloda()
{
count=36;
int ** cards = new int*[2]; //двумерный массив
for(int i = 0; i < 2; i++)
{
cards[i] = new int[2];
for(int j = 0; j < 2; j++)
{
cards[i][j] = 0;
}
}
cards[0][0] = 6;
cards[0][1] = 7;
cards[1][0] = 1;
cards[1][1] = 2;
}
~Koloda()
{
for(int i = 0; i < 2; i++)
{
delete cards[i];
}
delete cards;
}
void Take_card(){
int i;
int j;
srand(time(NULL));
do {
i = rand()%9;
j = rand()%4;
}
while(cards[i][j]!=0);
cards[i][j]=0;
if(count>0){count--;}
else{
cout << "Карт больше нет";
}
}
};
Herflrish, а почему нет?! Только не забудь удалять указатели...
Последний раз редактировалось ChaaK; 30.01.2009 в 00:18..
|
|
|