C++ Initialization lists
TIL
595
C++
30
Male avatar

baoquocphan viết ngày 19/04/2017

Constructor của lớp cha luôn được gọi trước constructor của lớp con.

class Foo {
    public:
        Foo() { 
            cout << "Base class initializing" << endl; 
        }
};

class Bar : public Foo {
    public:
        int baz;
        Bar(int baz) { 
            cout << "Inherited class initializing" << endl;
            this->baz = baz;
        }
};

int main() {
    Bar b;
    return 0;
}

/*
Output:
Base class initializing
Inherited class initializing
*/

Nếu constructor của lớp cha có tham số, ta dùng initialization lists ở lớp con để gọi nó.

class Point {
    public:
        double x, y;
        Point(double x, double y) {
            this->x = x;
            this->y = y;
        }
};

class Vector : public Point {
    public:
        int type;
        Vector(int type, double x, double y) : Point(x, y) {
            this->type = type;
        }
};

Initialization lists cũng có thể khởi tạo thuộc tính của lớp,

class Point {
    public:
        double x, y;
        Point(double x, double y) : x(x), y(y) {}
};

hoặc thuộc tính hằng.

class Foo {
    public:
        const int constant;
        Foo() : constant(42) {}
};
Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

Male avatar

baoquocphan

4 bài viết.
0 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
Male avatar
1 0
qsort :: (Integral a) = a] a] qsort lst | length lst < pivot] mid = x | x pivot] maxn :: Int maxn = 1000000 main = do print ((qsort maxn...
baoquocphan viết 2 năm trước
1 0
Male avatar
1 0
Code import java.util.; import java.lang.; import java.io.; abstract class Chainable { public Chainable andThen(Chainable after) { Chainab...
baoquocphan viết 1 năm trước
1 0
Male avatar
1 0
Code import java.util.; import java.lang.; import java.io.; class Beers implements Iterable { private int count = 0; class BeersIterator i...
baoquocphan viết 1 năm trước
1 0
Bài viết liên quan
White
0 2
fCC: Technical Documentation Page note So I have finished the HTML part of this exercise and I want to come here to lament about the lengthy HTML ...
HungHayHo viết 1 tháng trước
0 2
White
19 1
Toán tử XOR có tính chất: + A XOR A = 0 + 0 XOR A = A Với tính chất này, có thể cài đặt bài toán sau với độ phức tạp O(N) về runtime, và với O(1)...
kiennt viết gần 2 năm trước
19 1
White
1 1
Chào mọi người, hôm nay mình viết một bài TIL nhỏ về cách lấy độ phân giải của màn hình hiện tại đang sử dụng. xdpyinfo | grep dimensions Kết quả...
namtx viết 1 năm trước
1 1
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


Male avatar
{{userFollowed ? 'Following' : 'Follow'}}
4 bài viết.
0 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!