Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Задача на классы

2.0K
31 мая 2006 года
BroKeR
163 / / 04.05.2006
Добрый вечер Господа!Вкратце объясню ситуацию:заплатил н-ую сумму кровных денег,и без того напряженного семейного бюджета за курсы по программированию на С++,бегал с работы,крутился как уж на сковороде до того момента когда начальство решило меня повысить,новый объект(работаю сисадмином)все валится(электрические сети просто мрак),вообщем на учебу ездить не успеваю,взял у препода конспект,и изучаю сам обложившись трудами многих авторов,но опять же не хватает времени,а деньги терять очнь жалко!Так вот,я уже поднимал вопрос по поводу спиртности,и мне подсказали как решать,но реализовать не могу.Вот текст:
 
Код:
//Задание 9.  Решите с помощью классов следующую задачу:
    //даны две бочки известного объема. В одной бочке в начальный момент
    //времени содержится спирт (96%), в другой – вода.
    //Кружкой емкостью 1л переливаем итеративно содержимое из одной бочки
    //в другую следующим способом: на каждой итерации
    //зачерпнули из первой бочки -> вылили во вторую
    //зачерпнули из второй бочки -> вылили в первую.
    //Требуется определить номер итерации, на которой концентрация спирта в
    //первой бочке станет меньше 50%.

второй вопрос,у меня есть класс MyString и мне нужно создать массив объектов этого класса,но почемуто все время выдает ошибку линкер.Привожу текст класса и задания.
Код:
/*header*/
class MyString
{
    char* m_pStr;   //строка-член класса
public:
    MyString();//конструктор по умолчанию
    MyString( char* pStr );  // объявление конструктора
    ~MyString();// объявление деструктора
    void SetString(char*);
    char* GetString(){  return m_pStr;}
};
/*realis*/
#include <string>
#include "myString.h"
using namespace std;

// Определение конструктора.
MyString::MyString( char*   pStr )
{
    // Динамически выделить требуемое количество памяти.
    m_pStr = new char[strlen( pStr ) + 1];  // + 1, так как
                        //нулевой байт тоже нужно скопировать
    // Если память выделена, скопировать строку-аргумент в строку-член класса
    strcpy( m_pStr, pStr );
}

// Определение деструктора.
MyString::~MyString()
{
    // Освобождение памяти, занятой в конструкторе для строки-члена класса
    delete[] m_pStr;
}
/*сами задания*/
//Задание 7.Массив объектов класса.
    //Объявите и проинициализируйте массив ar из трех объектов
    // типа MyString.
       
    //Проверка - печать строк-членов класса
//Задание 8.Массив указателей на объекты класса.
    {
    //Объявите и проинициализируйте массив arPtr из трех
    //указателей на объекты типа MyString.
   
   
    //Печать строк-членов класса

Спасибо всем кто хотябы посмотрит,с уважением Антон.
1.7K
01 июня 2006 года
alektrik
140 / / 16.01.2006
На счет второй задачи:

Код:
#include <string.h>
#include <iostream.h>

class MyString
{    
    public:
        MyString();//конструктор по умолчанию
        MyString(char *pStr);  // объявление конструктора
        ~MyString();// объявление деструктора
        void Load(char *pStr);     
        void Print();
        char* GetString()
        {  
            return m_pStr;
        }
    private:
        char* m_pStr;   //строка-член класса
};


//Описание конструктора по умолчаниюMyString::MyString()
{
    Load("");
}

// Определение конструктора.
MyString::MyString( char*   pStr )
{
    Load(pStr);
}

// Определение деструктора.
MyString::~MyString()
{
    // Освобождение памяти, занятой в конструкторе для строки-члена класса
    delete[] m_pStr;
}

//Печать
void MyString::Print()
{
    cout << pStr << endl;
}

void MyString::Load(char *pStr)
{
    // Динамически выделить требуемое количество памяти.
    m_pStr = new char[strlen( pStr ) + 1];  // + 1, так как
                        //нулевой байт тоже нужно скопировать
    // Если память выделена, скопировать строку-аргумент в строку-член класса
    strcpy(m_pStr, pStr);
    Print();
}

void main()
{
    MyString ar[3];
    MyString *arPtr[3];

    ar[0].Load("One");
    ar[1].Load("Two");
    ar[2].Load("Three");

    arPtr[0]=new MyString("OnePtr");
    arPtr[1]=new MyString("TwoPtr");
    arPtr[2]=new MyString("ThreePtr");
}


Ну если, что не так сам поправишь... главное чтоб идея была понятна... а не Linkil'ся потому-что у тебя не был ОПИСАН конструктор по умолчанию...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог