Thậm chí nếu anh ấy là một sinh viên, giá trị cố gắng để trả lời bởi vì nó là một trong những phức tạp không phải là dễ dàng ít nhất là cho một lượt truy cập mới của C++ :)
Lớp học trong C++ phục vụ một giao điểm của hai mô hình thiết kế,
1) ADT :: có nghĩa là về cơ bản một kiểu mới, giống như số nguyên 'int' hoặc số thực 'tăng gấp đôi' hoặc thậm chí một khái niệm mới như 'ngày'. trong trường hợp này lớp đơn giản nên trông như thế này,
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.
.
.
.
};
đây là bộ xương cơ bản nhất của một ADT ... tất nhiên nó có thể được đơn giản hơn bằng cách bỏ qua các khu vực công cộng! và xóa các công cụ sửa đổi truy cập (công khai, riêng tư) và toàn bộ nội dung sẽ là riêng tư. nhưng đó chỉ là vô nghĩa. Bởi vì NewDataType trở nên vô dụng! hãy tưởng tượng một 'int' mà bạn chỉ có thể khai báo nhưng bạn KHÔNG THỂ làm bất cứ điều gì với nó.
Sau đó, bạn cần một số công cụ hữu ích về cơ bản không cần thiết cho sự tồn tại của NewDataType, nhưng bạn sử dụng chúng để cho kiểu của bạn trông giống như kiểu 'nguyên thủy' trong ngôn ngữ.
đầu tiên là Constructor. Các nhà xây dựng là cần thiết ở nhiều nơi trong ngôn ngữ. xem int và cho phép thử bắt chước hành vi của nó.
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.
mỗi dòng của các dòng trên là tuyên bố, biến được tạo ở đó.
và cuối cùng tưởng tượng int biến trên trong một hàm, chức năng đó được gọi là 'vui vẻ',
int fun()
{
int y = 5;
int z = y;
int m(z);
return (m + z + y)
// the magical line.
}
bạn nhìn thấy dòng kỳ diệu, ở đây bạn có thể nói với trình biên dịch bất cứ điều gì bạn muốn! sau khi bạn làm mọi điều và NewDataType của bạn không hữu ích hơn cho phạm vi địa phương như trong hàm, bạn KILL IT. một ví dụ cổ điển sẽ giải phóng bộ nhớ được dành riêng cho 'mới'!
nên NewDataType rất đơn giản của chúng tôi sẽ trở thành,
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;
};
Bây giờ đây là bộ xương rất cơ bản, để bắt đầu xây dựng một lớp học hữu ích bạn phải cung cấp các chức năng công cộng.
có rất nhiều công cụ nhỏ để xem xét trong việc xây dựng một lớp học trong C++,
. . . .
2) Đối tượng :: có nghĩa là về cơ bản một loại mới, nhưng sự khác biệt là nó thuộc về anh em, chị em, tổ tiên và hậu duệ. nhìn vào 'đôi' và 'int' trong C++, 'int' là mặt trời của 'đôi' vì mỗi 'int' là 'đôi' ít nhất là trong khái niệm :)
Đây là bài tập về nhà! – xian
Tôi khó có thể tin rằng bạn không thể tìm thấy bất kỳ ví dụ nào thông qua việc googling về chủ đề đó. Hầu hết các ví dụ bên dưới, chỉ cần sao chép được dán ở đây, từ các hướng dẫn khác trên web. –
bạn nghiêm túc không phải trông rất khó. –