Computer >> Máy Tính >  >> Lập trình >> C ++

Khởi tạo thống nhất trong C ++


Ở đây chúng ta sẽ thảo luận về việc khởi tạo thống nhất trong C ++. Điều này được hỗ trợ từ phiên bản C ++ 11. Khởi tạo thống nhất là một tính năng cho phép sử dụng cú pháp nhất quán để khởi tạo các biến và đối tượng từ kiểu nguyên thủy đến kiểu tổng hợp. Nói cách khác, nó giới thiệu cách khởi tạo dấu ngoặc nhọn áp dụng dấu ngoặc nhọn ({}) để bao gồm các giá trị của trình khởi tạo.

Cú pháp

type var_name{argument_1, argument_2, .... argument_n}

Khởi tạo mảng được phân bổ động

Ví dụ (C ++)

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

#include <bits/stdc++.h>
using namespace std;
int main() {
   int* pointer = new int[5]{ 10, 20, 30, 40, 50 };
   cout<lt;"The contents of array are: ";
   for (int i = 0; i < 5; i++)
      cout << pointer[i] << " " ;
}

Đầu ra

The contents of array are: 10 20 30 40 50

Khởi tạo thành viên dữ liệu mảng của một lớp

Ví dụ

#include <iostream>
using namespace std;
class MyClass {
   int arr[3];
   public:
      MyClass(int p, int q, int r) : arr{ p, q, r } {};
      void display(){
         cout <<"The contents are: ";
         for (int c = 0; c < 3; c++)
            cout << *(arr + c) << ", ";
   }
};
int main() {
   MyClass ob(40, 50, 60);
   ob.display();
}

Đầu ra

The contents are: 40, 50, 60,

Khởi tạo ngầm các đối tượng để trả về

Ví dụ

#include <iostream>
using namespace std;
class MyClass {
   int p, q;
public:
   MyClass(int i, int j) : p(i), q(j) {
   }
   void display() {
      cout << "(" <<p <<", "<< q << ")";
   }
};
MyClass func(int p, int q) {
   return { p, q };
}
int main() {
   MyClass ob = func(40, 50);
   ob.display();
}

Đầu ra

(40, 50)

Khởi tạo hoàn toàn tham số hàm

Ví dụ

#include <iostream>
using namespace std;
class MyClass {
   int p, q;
public:
   MyClass(int i, int j) : p(i), q(j) {
   }
   void display() {
      cout << "(" <<p <<", "<< q << ")";
   }
};
void func(MyClass p) {
   p.display();
}
int main() {
   func({ 40, 50 });
}

Đầu ra

(40, 50)