C++
  • Home
  • Học lập trình
    • All
    • Học C++
    Quick Sort – Thuật toán sắp xếp đột phá trong thế kỉ XX

    Quick Sort – Thuật toán sắp xếp đột phá trong thế kỉ XX

    Lập trình Backend là gì? Những điều Backend Developer nên biết

    Lập trình Backend là gì? Những điều Backend Developer nên biết

    Top 7 website luyện thuật toán chất lượng nhất năm 2023 cho IT

    Top 7 website luyện thuật toán chất lượng nhất năm 2023 cho IT

    hướng dẫn cài đặt visual studio code lập trình c++ chi tiết

    Cài Đặt Visual Studio Code Lập Trình C++ Chi Tiết Đơn Giản 2024

    học lập trình c++ thì làm được gì

    Học Lập Trình C++ Thì Làm Được Gì?

    Sự khác nhau giữa struct và class trong C++

    Sự Khác Nhau Giữa Struct Và Class Trong C++

    Sự khác nhau giữa tham chiếu và con trỏ c++

    Sự Khác Nhau Giữa Tham Chiếu Và Con Trỏ Trong C++

    • Học C++
  • Reviews
    Top 7 công cụ tạo website không cần code

    Top 7 Công Cụ Tạo Website Không Cần Code Miễn Phí

    Top 7 website luyện thuật toán chất lượng nhất năm 2023 cho IT

    Top 7 website luyện thuật toán chất lượng nhất năm 2023 cho IT

  • Phần mềm PC
  • App/Ứng dụng
  • Game
  • Hướng dẫn
    • PC
    • Mobile Tips
No Result
View All Result
  • Home
  • Học lập trình
    • All
    • Học C++
    Quick Sort – Thuật toán sắp xếp đột phá trong thế kỉ XX

    Quick Sort – Thuật toán sắp xếp đột phá trong thế kỉ XX

    Lập trình Backend là gì? Những điều Backend Developer nên biết

    Lập trình Backend là gì? Những điều Backend Developer nên biết

    Top 7 website luyện thuật toán chất lượng nhất năm 2023 cho IT

    Top 7 website luyện thuật toán chất lượng nhất năm 2023 cho IT

    hướng dẫn cài đặt visual studio code lập trình c++ chi tiết

    Cài Đặt Visual Studio Code Lập Trình C++ Chi Tiết Đơn Giản 2024

    học lập trình c++ thì làm được gì

    Học Lập Trình C++ Thì Làm Được Gì?

    Sự khác nhau giữa struct và class trong C++

    Sự Khác Nhau Giữa Struct Và Class Trong C++

    Sự khác nhau giữa tham chiếu và con trỏ c++

    Sự Khác Nhau Giữa Tham Chiếu Và Con Trỏ Trong C++

    • Học C++
  • Reviews
    Top 7 công cụ tạo website không cần code

    Top 7 Công Cụ Tạo Website Không Cần Code Miễn Phí

    Top 7 website luyện thuật toán chất lượng nhất năm 2023 cho IT

    Top 7 website luyện thuật toán chất lượng nhất năm 2023 cho IT

  • Phần mềm PC
  • App/Ứng dụng
  • Game
  • Hướng dẫn
    • PC
    • Mobile Tips
No Result
View All Result
C++
No Result
View All Result
Home Học lập trình Học C++

Các lớp và đối tượng C++

admin by admin
July 5, 2023
in Học C++
0 0
0
0
SHARES
0
VIEWS
Share on FacebookShare on Twitter

Lớp trong C++ là khối xây dựng dẫn đến lập trình hướng đối tượng. Nó là một kiểu dữ liệu do người dùng xác định, chứa các thành viên dữ liệu và chức năng thành viên của riêng nó, có thể được truy cập và sử dụng bằng cách tạo một thể hiện của lớp đó. Một lớp C++ giống như một bản thiết kế cho một đối tượng. Ví dụ: Hãy xem xét loại xe. Có thể có nhiều chiếc xe với tên gọi và thương hiệu khác nhau nhưng tất cả chúng sẽ chia sẻ một số đặc tính chung như tất cả chúng sẽ có 4 bánh, Giới hạn tốc độ, Phạm vi quãng đường, v.v. Vì vậy, ở đây, Xe hơi là đẳng cấp, và bánh xe, giới hạn tốc độ và quãng đường đi được là tài sản của chúng.

  • Lớp là kiểu dữ liệu do người dùng xác định có các thành viên dữ liệu và hàm thành viên.
  • Data members là các biến dữ liệu và hàm thành viên là các hàm được sử dụng để thao tác các biến này với nhau, các thành viên dữ liệu này và các hàm thành viên xác định các thuộc tính và hành vi của các đối tượng trong một Class.
  • Trong ví dụ trên về hạng Car, thành viên dữ liệu sẽ là giới hạn tốc độ, quãng đường, v.v. và các chức năng của thành viên có thể áp dụng phanh, tăng tốc độ, v.v.

Một Object là một instance của một Class. Khi một lớp được xác định, không có bộ nhớ nào được cấp phát nhưng khi nó được khởi tạo (tức là một đối tượng được tạo) bộ nhớ được phân bổ.

Xác định lớp và khai báo đối tượng

Một lớp được định nghĩa trong C++ bằng cách sử dụng lớp từ khóa theo sau là tên của lớp. Phần thân của lớp được xác định bên trong dấu ngoặc nhọn và kết thúc bằng dấu chấm phẩy ở cuối.

Lớp và đối tượng C++

Khai báo đối tượng

Khi một lớp được định nghĩa, chỉ có đặc tả cho đối tượng được xác định; Không có bộ nhớ hoặc bộ nhớ được phân bổ. Để sử dụng các hàm dữ liệu và truy cập được định nghĩa trong lớp, bạn cần tạo các đối tượng.

Cú pháp

ClassName ObjectName;

Truy cập các thành viên dữ liệu và các chức năng thành viên: Các thành viên dữ liệu và các hàm thành viên của lớp có thể được truy cập bằng toán tử dot (‘.’) với đối tượng. Ví dụ, nếu tên của đối tượng là obj và bạn muốn truy cập vào hàm member với tên printName() thì bạn sẽ phải viết obj.printName().

Truy cập thành viên dữ liệu

Các thành viên dữ liệu công khai cũng được truy cập theo cách tương tự, tuy nhiên các thành viên dữ liệu riêng tư không được phép truy cập trực tiếp bởi đối tượng. Việc truy cập một thành viên dữ liệu chỉ phụ thuộc vào kiểm soát truy cập của thành viên dữ liệu đó. Kiểm soát truy cập này được cung cấp bởi các công cụ sửa đổi Access trong C ++. Có ba công cụ sửa đổi truy cập: công khai, riêng tư và được bảo vệ.

C++

// C++ program to demonstrate accessing of data members
#include <bits/stdc++.h>
using namespace std;
class Geeks {
    // Access specifier
public:
    // Data  Members
    string geekname;
    // Member Functions()
    void printname() { cout << "Geekname is:" << geekname; }
};
int main()
{
    // Declare an object of class geeks
    Geeks obj1;
    // accessing data member
    obj1.geekname = "Abhi";
    // accessing member function
    obj1.printname();
    return 0;
}
Ra

Geekname is:Abhi

Chức năng thành viên trong các lớp học

Có 2 cách để xác định hàm thành viên:

  • Định nghĩa bên trong lớp
  • Định nghĩa lớp bên ngoài

Để định nghĩa một hàm thành viên bên ngoài định nghĩa lớp, chúng ta phải sử dụng toán tử scope resolution:: cùng với tên lớp và tên hàm.

C++

// C++ program to demonstrate function 
// declaration outside class
 
#include <bits/stdc++.h>
using namespace std;
class Geeks
{
    public:
    string geekname;
    int id;
     
    // printname is not defined inside class definition
    void printname();
     
    // printid is defined inside class definition
    void printid()
    {
        cout <<"Geek id is: "<<id;
    }
};
 
// Definition of printname using scope resolution operator ::
void Geeks::printname()
{
    cout <<"Geekname is: "<<geekname; 
}
int main() {
     
    Geeks obj1;
    obj1.geekname = "xyz";
    obj1.id=15;
     
    // call printname()
    obj1.printname();
    cout << endl;
     
    // call printid()
    obj1.printid();
    return 0;
}
Ra

Geekname is: xyz
Geek id is: 15

Lưu ý rằng tất cả các hàm thành viên được xác định bên trong định nghĩa lớp theo mặc định là nội tuyến, nhưng bạn cũng có thể tạo bất kỳ hàm không phải lớp nào nội tuyến bằng cách sử dụng từ khóa nội tuyến với chúng. Các hàm nội tuyến là các hàm thực tế, được sao chép ở mọi nơi trong quá trình biên dịch, như macro tiền xử lý, do đó chi phí của các cuộc gọi hàm được giảm.

Ghi: Khai báo chức năng bạn bè là một cách để cấp quyền truy cập riêng tư vào chức năng không phải thành viên.

Nhà xây dựng

Các hàm tạo là các thành viên lớp đặc biệt được trình biên dịch gọi mỗi khi một đối tượng của lớp đó được khởi tạo. Các hàm tạo có cùng tên với lớp và có thể được định nghĩa bên trong hoặc bên ngoài định nghĩa lớp. Có 3 loại hàm tạo:

  • Xây dựng mặc định
  • Các nhà xây dựng tham số
  • Sao chép hàm tạo

C++

// C++ program to demonstrate constructors
#include <bits/stdc++.h>
using namespace std;
class Geeks
{
    public:
    int id;
     
    //Default Constructor
    Geeks()
    {
        cout << "Default Constructor called" << endl; 
        id=-1;
    }
     
    //Parameterized Constructor
    Geeks(int x)
    {
        cout <<"Parameterized Constructor called "<< endl;
        id=x;
    }
};
int main() {
     
    // obj1 will call Default Constructor
    Geeks obj1;
    cout <<"Geek id is: "<<obj1.id << endl;
     
    // obj2 will call Parameterized Constructor
    Geeks obj2(21);
    cout <<"Geek id is: " <<obj2.id << endl;
    return 0;
}
Ra

Default Constructor called
Geek id is: -1
Parameterized Constructor called 
Geek id is: 21

Một Copy Constructor tạo ra một đối tượng mới, đó là một bản sao chính xác của đối tượng hiện có. Trình biên dịch cung cấp một Copy Constructor mặc định cho tất cả các lớp.

Cú pháp:

class-name (class-name &){}

Kẻ hủy diệt

Destructor là một hàm thành viên đặc biệt khác được trình biên dịch gọi khi phạm vi của đối tượng kết thúc.

C++

// C++ program to explain destructors
#include <bits/stdc++.h>
using namespace std;
class Geeks
{
    public:
    int id;
     
    //Definition for Destructor
    ~Geeks()
    {
        cout << "Destructor called for id: " << id <<endl; 
    }
};
 
int main() 
  {
    Geeks obj1;
    obj1.id=7;
    int i = 0;
    while ( i < 5 )
    {
        Geeks obj2;
        obj2.id=i;
        i++;        
    } // Scope for obj2 ends here
 
    return 0;
  } // Scope for obj1 ends here
Ra

Destructor called for id: 0
Destructor called for id: 1
Destructor called for id: 2
Destructor called for id: 3
Destructor called for id: 4
Destructor called for id: 7

Sự thật thú vị (Khái niệm hiếm được biết đến)

Tại sao chúng ta cho dấu chấm phẩy vào cuối lớp?

Nhiều người có thể nói rằng đó là một cú pháp cơ bản và chúng ta nên đưa ra dấu chấm phẩy ở cuối lớp như quy tắc của nó được định nghĩa trong cpp. Nhưng lý do chính tại sao dấu chấm phẩy ở cuối lớp là trình biên dịch kiểm tra xem người dùng có đang cố gắng tạo một thể hiện của lớp ở cuối lớp hay không.

Vâng, giống như cấu trúc và hợp nhất, chúng ta cũng có thể tạo ra thể hiện của một lớp ở cuối ngay trước dấu chấm phẩy. Kết quả là, khi thực thi đạt đến dòng đó, nó sẽ tạo ra một lớp và phân bổ bộ nhớ cho phiên bản của bạn.

C++

#include <iostream>
using namespace std;
 
class Demo{
   int a, b;
    public:
    Demo()   // default constructor
    {
        cout << "Default Constructor" << endl;
    }
    Demo(int a, int b):a(a),b(b)  //parameterised constructor
    {
        cout << "parameterized constructor -values" << a  << " "<< b << endl;
    }
     
}instance;
 
 
int main() {
    
    return 0;
}
Ra

Default Constructor

Chúng ta có thể thấy rằng chúng ta đã tạo ra một class instance của Demo với tên gọi là “instance”, kết quả là output chúng ta có thể thấy là Default Constructor được gọi.

Tương tự, chúng ta cũng có thể gọi hàm tạo tham số chỉ bằng cách truyền các giá trị ở đây

C++

#include <iostream>
using namespace std;
 
class Demo{
    public:
    int a, b;
    Demo()
    {
        cout << "Default Constructor" << endl;
    }
    Demo(int a, int b):a(a),b(b)
    {
        cout << "parameterized Constructor values-" << a << " "<< b << endl;
    }
      
     
     
}instance(100,200);
 
 
int main() {
    
    return 0;
}
Ra

parameterized Constructor values-100 200

Vì vậy, bằng cách tạo một instance ngay trước dấu chấm phẩy, chúng ta có thể tạo Instance of class.

Previous Post

Mảng C++

Next Post

Dãy số Fibonacci trong C++

admin

admin

Next Post
Dãy số Fibonacci trong C++

Dãy số Fibonacci trong C++

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

  • Trending
  • Comments
  • Latest
cách code hình trái tim bằng c++

Cách code hình trái tim giống với nhân vật Thủ Khoa Lý

December 7, 2023
hướng dẫn cài đặt visual studio code lập trình c++ chi tiết

Cài Đặt Visual Studio Code Lập Trình C++ Chi Tiết Đơn Giản 2024

October 3, 2023
Office 2019 full crack

Cách Crack Office 2019 Đơn Giản, Dễ Hiểu Thành Công 100%

September 19, 2023
Top 10 ứng dụng mua hàng Trung Quốc uy tín nhất hiện nay

Top 10 ứng dụng mua hàng Trung Quốc uy tín nhất hiện nay

January 18, 2025

Các lớp lưu trữ trong cpp

0

Câu lệnh if else trong cpp

0

Chức năng của switch trong cpp

0

Mảng đối tượng trong C++

0
Quick Sort – Thuật toán sắp xếp đột phá trong thế kỉ XX

Quick Sort – Thuật toán sắp xếp đột phá trong thế kỉ XX

October 23, 2023
Top 7 website bán túi xách nữ chính hãng, uy tín nhất

Top 7 website bán túi xách nữ chính hãng, uy tín nhất

October 12, 2023
Hướng dẫn Cài Đặt Và Sử Dụng AutoCAD 2024 Full Crack 

Hướng dẫn Cài Đặt Và Sử Dụng AutoCAD 2024 Full Crack 

October 7, 2023
Hướng Dẫn Tải Và Sử Dụng GS Auto Clicker 3.1.2 Full Crack

Hướng Dẫn Tải Và Sử Dụng GS Auto Clicker 3.1.2 Full Crack

October 5, 2023

Recommended

Quick Sort – Thuật toán sắp xếp đột phá trong thế kỉ XX

Quick Sort – Thuật toán sắp xếp đột phá trong thế kỉ XX

October 23, 2023
Top 7 website bán túi xách nữ chính hãng, uy tín nhất

Top 7 website bán túi xách nữ chính hãng, uy tín nhất

October 12, 2023
Hướng dẫn Cài Đặt Và Sử Dụng AutoCAD 2024 Full Crack 

Hướng dẫn Cài Đặt Và Sử Dụng AutoCAD 2024 Full Crack 

October 7, 2023
Hướng Dẫn Tải Và Sử Dụng GS Auto Clicker 3.1.2 Full Crack

Hướng Dẫn Tải Và Sử Dụng GS Auto Clicker 3.1.2 Full Crack

October 5, 2023
Hướng dẫn học C++

© 2023 Hướng dẫn học C++ - Website thuộc bản quyền của Hướng dẫn học C++.

Liên kết

  • Home
  • Học lập trình
  • Reviews
  • Phần mềm PC
  • App/Ứng dụng
  • Game
  • Hướng dẫn

Theo dõi chúng tôi

No Result
View All Result
  • Home
  • Học lập trình
    • Học C++
  • Reviews
  • Phần mềm PC
  • App/Ứng dụng
  • Game
  • Hướng dẫn
    • PC
    • Mobile Tips

© 2023 Hướng dẫn học C++ - Website thuộc bản quyền của Hướng dẫn học C++.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In