Truyền một lớp cho một hàm C++

Sau khi một hàm được khai báo và định nghĩa, nó có thể được gọi từ bất kỳ đâu trong chương trình. từ bên trong hàm main, từ hàm khác và thậm chí từ chính nó. Gọi hàm liên quan đến việc chỉ định tên hàm, theo sau là toán tử gọi hàm và bất kỳ giá trị dữ liệu nào mà hàm muốn nhận. Các giá trị này là đối số cho các tham số được xác định cho hàm. Quá trình này được gọi là truyền đối số cho hàm

Bạn có thể truyền đối số cho các hàm được gọi theo ba cách.

  • , sao chép giá trị của một đối số vào tham số tương ứng trong hàm được gọi;
  • , chuyển đối số con trỏ tới tham số tương ứng trong hàm được gọi;
  • , chuyển tham chiếu của một đối số tới tham số tương ứng trong hàm được gọi.

Nếu một lớp có một hàm hủy hoặc một hàm tạo bản sao thực hiện nhiều hơn một bản sao theo từng bit, thì việc truyền một đối tượng lớp theo giá trị sẽ dẫn đến việc xây dựng một đối tượng tạm thời thực sự được truyền bằng tham chiếu

Trình biên dịch tạo ra lỗi khi đối số hàm là đối tượng lớp và tất cả các điều kiện sau đều đúng

  • Lớp học cần một hàm tạo bản sao
  • Lớp không có hàm tạo bản sao do người dùng định nghĩa
  • Không thể tạo một hàm tạo bản sao cho lớp đó

Một lệnh gọi hàm luôn là một giá trị

Một lệnh gọi hàm thuộc về một trong các loại giá trị sau tùy thuộc vào loại kết quả của hàm
  • Một giá trị nếu loại kết quả là một loại tham chiếu giá trị lvalue
    hoặc một tham chiếu giá trị cho một loại hàm
  • Một xvalue nếu loại kết quả là một tham chiếu giá trị cho một loại đối tượng
  • A
    [prvalue]
    giá trị trong các trường hợp khác

Một đối tượng có thể được truyền vào một hàm giống như chúng ta truyền một cấu trúc cho một hàm. chúng ta có thể truyền đối tượng của một lớp khác cho một hàm của một lớp khác. Chúng ta có thể chuyển các đối tượng của lớp làm đối số và trả về chúng từ một hàm

Khi chúng ta muốn khởi tạo tất cả các thành viên dữ liệu của một đối tượng với một đối tượng khác, chúng ta có thể truyền các đối tượng và gán các giá trị của một đối tượng được cung cấp cho đối tượng hiện tại. Đối với các dự án phức tạp hoặc lớn, chúng ta cần sử dụng các đối tượng làm đối số hoặc tham số. Vì vậy, đây là câu hỏi.  

Mục lục

Đối tượng là gì?

Một Đối tượng là một thể hiện của Lớp. Khi một lớp được định nghĩa, không có bộ nhớ nào được cấp phát nhưng khi nó được thể hiện thì có nghĩa là một đối tượng được tạo và bộ nhớ được cấp phát.  

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

cú pháp

ClassName Tên đối tượng;

một lớp học là gì?

Một lớp là một khuôn mẫu tương tự như một bản thiết kế liên kết các thuộc tính và chức năng của một thực thể. Bạn có thể gán tất cả các thực thể hoặc đối tượng có các thuộc tính tương tự dưới một mái nhà duy nhất, được gọi là một lớp. Chúng có thể triển khai thêm các khái niệm cốt lõi như đóng gói, ẩn dữ liệu và trừu tượng hóa. Trong C++, một lớp hoạt động như một kiểu dữ liệu có thể có các đối tượng hoặc các thể hiện khác nhau của kiểu lớp.  

  • Lớp là kiểu dữ liệu do người dùng định nghĩa có các thành viên dữ liệu và các hàm thành viên
  • Các thành viên dữ liệu bao gồm các biến dữ liệu và các hàm thành viên là các hàm được sử dụng để thao tác các biến này cùng 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 lớp.

Tạo một lớp gọi là “MyCycle”

class MyCycle {       
  public:             // Access specifier
    int myNum;        // Attribute [int variable]
    string myString;  // Attribute [string variable]
};

Để tạo một đối tượng của MyCycle, hãy chỉ định tên lớp và hành động theo tên đối tượng

Để truy cập các thuộc tính của lớp [myNumb và myString], hãy sử dụng cú pháp dấu chấm [. ] trên đối tượng

Ví dụ 1

Tạo một đối tượng có tên là “myObj” và truy cập các thuộc tính

class MyCycle {       
  public:             // Access specifier
    int myNumb;        // Attribute [int variable]
    string myString;  // Attribute [string variable]
};
int main[] {
  MyCycle myObj;  // Create an object of MyCycle
  // Access attributes and set values
  myObj.myNumb = 15; 
  myObj.myString = "Random Info";
  // Print attribute values
  cout 

Chủ Đề