Даже если он студент, стоит попытаться ответить, потому что это сложный один не так просто, по крайней мере для нового Посетительница C++ :)
классов в C++ служит пересечение двух конструктивных парадигм,
1) ADT :: что означает принципиально новый тип, что-то вроде целых чисел 'int' или реальных чисел 'double' или даже новая концепция, подобная 'date'. в этом случае простой класс должен выглядеть так,
class NewDataType
{
public:
// public area. visible to the 'user' of the new data type.
.
.
.
private:
// no one can see anything in this area except you.
.
.
.
};
это самый основной скелет ADT ... , конечно, это может быть проще, не обращая внимания на публичных местах! и стирание модификаторов доступа (общедоступных, частных), и все это будет частным. но это просто вздор. Потому что NewDataType становится бесполезным! Представьте себе «int», который вы можете просто объявить, но вы НЕ МОЖЕШЬ с ним что-либо делать.
Затем вам нужны полезные инструменты, которые в основном не требуются для существования типа NewDataType, но вы используете их, чтобы ваш тип выглядел как «примитивный» тип на языке.
Первый конструктор. Конструктор необходим во многих местах на этом языке. Посмотрите на int и попытайтесь подражать его поведению.
int x; // default constructor.
int y = 5; // copy constructor from a 'literal' or a 'constant value' in simple wrods.
int z = y; // copy constructor. from anther variable, with or without the sametype.
int n(z); // ALMOST EXACTLY THE SAME AS THE ABOVE ONE, it isredundant for 'primitive' types, but really needed for the NewDataType.
Каждая строка вышеуказанных строк является декларацией, здесь строится переменная.
и в конце концов представьте выше ИНТ переменные в функции, эта функция называется «удовольствием»,
int fun()
{
int y = 5;
int z = y;
int m(z);
return (m + z + y)
// the magical line.
}
вы видите волшебную линию, здесь вы можете сказать компилятор любой вещи вы хотите! после того, как вы сделаете все, и ваш NewDataType не более полезен для локальной области видимости, как в функции, вы УБИРАЕТЕ ЭТО. классический пример будет освобождать память, зарезервированную «новым»!
поэтому наш очень простой NewDataType становится,
class NewDataType
{
public:
// public area. visible to the 'user' of the new data type.
NewDataType()
{
myValue = new int;
*myValue = 0;
}
NewDataType(int newValue)
{
myValue = new int;
*myValue = newValue;
}
NewDataType(const NewDataType& newValue){
myValue = new int;
*myValue = newValue.(*myValue);
}
private:
// no one can see anything in this area except you.
int* myValue;
};
Сейчас это очень простой скелет, чтобы начать строить полезный класс, вы должны предоставить государственные функции.
Есть много крошечных инструментов, чтобы рассмотреть в создании класса в C++,
. . . .
2) Объект :: что означает принципиально новый тип, но разница в том, что он принадлежит братьям, сестрам, предкам и потомкам. посмотрите на «double» и «int» на C++, «int» - это солнце «double», потому что каждый «int» является «двойным», по крайней мере, в концепции :)
Это _has_, чтобы быть домашним заданием! – xian
Я с трудом могу поверить, что вы не смогли найти примеров с помощью googling по этой теме. Большинство приведенных ниже примеров, просто скопируйте их здесь, из учебных пособий, других в Интернете. –
вы серьезно не должны были выглядеть очень тяжело. –