C++ hỗ trợ đa kế thừa trong lập trình hướng đối tượng
1. Đa kế thừa (multiple inheritance) là gì? Lớp dẫn xuất kế thừa từ nhiều lớp...
Kết quả sẽ mở trong tab mới, giới hạn trong website này.
Truy cập nhanh
Tìm kiếm gần đây
1. Kiểu dữ liệu là gì? 1.1. Dữ liệu và kiểu dữ liệu Mọi chương trình đều cần đến dữ liệu. Ví dụ chương trình sau: Một chương trình xuất ra màn hình đơn giản cũng cần dữ liệu Chương trình trên cần lưu trữ dữ liệu “LAP TRINH C/C++” để xuất ra màn hình. […]
Mọi chương trình đều cần đến dữ liệu. Ví dụ chương trình sau:
int main()
{
cout<<"LAP TRINH C/C++";
system("pause");
}
Một chương trình xuất ra màn hình đơn giản cũng cần dữ liệu
Chương trình trên cần lưu trữ dữ liệu “LAP TRINH C/C++” để xuất ra màn hình. Hay một chương trình giải phương trình bậc 2 cần lưu trữ dữ liệu các hệ số a, b,c, giá trị Delta, các nghiệm của phương trình.
Một chương trình quản lý nhân sự cần dữ liệu mã số nhân sự, họ tên, hệ số lương,…
Dữ liệu mà chương trình lưu trữ có thể thuộc nhiều dạng khác nhau, gọi là kiểu dữ liệu (data type):
Ngoài tính chất lưu trữ khác nhau, chương trình cũng cần thiết phân biệt các kiểu dữ liệu nói trên. Vì mỗi kiểu quy định thông tin đi kèm khác nhau, cách tổ chức lưu trữ khác nhau.
Vậy ngôn ngữ lập trình phân biệt các kiểu dữ liệu như thế nào?
Ngôn ngữ C/C++ (các ngôn ngữ khác cũng vậy) quy ước ngữ nghĩa với một loạt các tên kiểu dữ liệu mà nó cung cấp sẵn. Tên các kiểu có sẵn này đã được gắn sẵn ngữ nghĩa nên nó là từ khoá. Ngoài ra, các ngôn ngữ lập trình cũng cung cấp cơ chế để lập trình viên tự định nghĩa các kiểu dữ liệu cho riêng mình.
– Kiểu dữ liệu cơ bản (Fundamental Data Type): Tên kiểu là từ khoá, ngữa nghĩa của tên này được quy định bởi ngôn ngữ lập trình.
– Kiểu dữ liệu do lập trình viên định nghĩa (User-defined Data Type): Tên kiểu do người lập trình đặt ra. Các kiểu dữ liệu dạng này trong C++ như struct, class,…
– Kiểu dữ liệu dẫn xuất (Derived Data Type): C++ cung cấp các ký hiệu để tạo ra kiểu mới từ các kiểu khác. Ví dụ: Mảng (array) các ký tự, các số nguyên, các số thực hay con trỏ (pointer).
– Kiểu dữ liệu Enum (Enum Data Type): tham khảo bài Kiểu dữ liệu enum trong C++.
Phải nhớ từ khóa và phạm vi giá trị của các kiểu dữ liệu để sử dụng chính xác.
| Kiểu dữ liệu | Từ khóa | Kích thước (bytes) | Phạm vi giá trị |
| Số nguyên | int | 4 | –2.147.483.648 đến +2.147.483.647 |
| Số thực | float | 4 | +/- 3.4E +/- 38 |
| Số thực | double | 8 | +/- 1.7E +/- 308 |
| Ký tự | char | 1 | -128 đến 127 hoặc 0 đến 255 |
| Ký tự | wchar_t | 2 | 0 đến 65.535 |
| Luận lý (Boolean) | bool | 1 | true hoặc false (1 hoặc 0) |
| Không kiểu (Valueless) | void |
Ngôn ngữ C++ cho phép các modifiers đứng trước các kiểu dữ liệu cơ bản. Mục đích là thay đổi ý nghĩa của các kiểu dữ liệu cơ bản.
Các modifiers được hỗ trợ trong C++ là signed (có dấu), unsigned (không dấu), short, long.
| Từ khóa | Kích thước (bytes) | Phạm vi giá trị |
| Modifier của kiểu int | ||
| short int | 2 | -32.768 đến 32.767 |
| unsigned short int | 2 | 0 đến 65.535 |
| unsigned int | 4 | 0 đến 4.294.967.295 |
| long int | 4 | -2.147.483.648 đến 2.147.483.647 |
| unsigned long int | 4 | 0 đến 4.294.967.295 |
| long long int | 8 | -(2^63) đến (2^63)-1 |
| unsigned long long int | 8 | 0 đến 18.446.744.073.709.551.615 |
| Modifier của kiểu char | ||
| signed char | 1 | -128 đến 127 |
| unsigned char | 1 | 0 đến 255 |
| Modifier của kiểu double | ||
| long double | 8 | +/- 1.7E +/- 308 |
Sử dụng hàm sizeof để in ra số bytes của các kiểu dữ liệu.
#include <iostream>
using namespace std;
int main()
{
cout << "Kich thuoc cua char la: " << sizeof(char) <<" byte"<< endl;
cout << "Kich thuoc cua int la: " << sizeof(int) <<" byte"<< endl;
cout << "Kich thuoc cua short int la: " << sizeof(short int) <<" byte"<< endl;
cout << "Kich thuoc cua long int la: " << sizeof(long int) <<" byte"<< endl;
cout << "Kich thuoc cua float la: " << sizeof(float) <<" byte"<< endl;
cout << "Kich thuoc cua double la: " << sizeof(double) <<" byte"<< endl;
cout << "Kich thuoc cua wchar_t la: " << sizeof(wchar_t) <<" byte"<< endl;
system("pause");
}
Kết quả:
Kich thuoc cua char la: 1 byte
Kich thuoc cua int la: 4 byte
Kich thuoc cua short int la: 2 byte
Kich thuoc cua long int la: 4 byte
Kich thuoc cua float la: 4 byte
Kich thuoc cua double la: 8 byte
Kich thuoc cua wchar_t la: 2 byte