- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
Trong C++,union
Có thể chứa các thành viên tĩnh, trong trường hợp các lớp, các thành viên này thuộc về một lớp và do đó chung cho tất cả các đối tượng.
liên minh U
{
dài l;
int i;
sl dài tĩnh;
intsi tĩnh;
};
int U::si;
dài U::sl;
Điều hợp lý là tất cả các thành viên tĩnh của liên minh được lưu trữ tại cùng một địa chỉ tương tự như các thành viên không tĩnh. Nhưng đó không phải là trường hợp. Một ví dụ đơn giản cho thấy các thành viên tĩnh được lưu trữ ở các địa chỉ khác nhau và có thể chứađộc lập 值。
int main()
{
Bạn bạn;
u.si = 10;
u.sl = 50;
std::cout << "Địa chỉ của các thành viên không tĩnh: " << &u.i << " " << &u.l << std::endl;
std::cout << "Địa chỉ của các thành viên tĩnh: " << &u.si << " " << &u.sl << std::endl;
std::cout << "Giá trị thành viên tĩnh: " << u.si << " " << u.sl << std::endl;
return 0;
}
Đầu ra:
Địa chỉ thành viên không tĩnh: 006FF8EC 006FF8EC
Địa chỉ thành viên tĩnh: 00AEB144 00AEB140
Giá trị thành viên tĩnh: 10 50
Tôi không hiểu tại sao việc lưu trữ giá trị độc lập lại được kết hợp. Tôi nghĩ rằng điều này là sai lệch và không có ý nghĩa. Tuy nhiên, theo tôi, việc này có lý do. union
Mục đích của thành viên tĩnh là gì?
câu trả lời hay nhất
Bạn có thể nhìn điều này từ hai góc độ.
Đoàn thể trước hết là một giai cấp. Mục đích của nó khác với lớp học, nhưng nó được thông báo bởi lớp học đó là gì.
Union là một lớp và chỉ có một đối tượng con thuộc bất kỳ loại nào là sự kiện. Để làm điều này, nó thay đổi cách hoạt động của các đối tượng thành viên của liên minh. Đây cũng là một liên minh và không thể được phép.lớp cơ sởMột phần lý do cho các đối tượng trẻ em.
Các thành viên dữ liệu tĩnh không phải là các đối tượng con thành viên, do đó cấu hình của chúng trong một liên kết sẽ không khác với cấu hình của chúng trong các lớp không liên kết.
Hơn nữa, các thành viên tĩnh của các kiểu trong C++ thực sự chỉ là một cơ chế xác định phạm vi cho tên hàm và đối tượng. Chúng thực sự vẫn mang tính toàn cầu, nhưng chúng có thể ở chế độ riêng tư và ẩn, đồng thời chúng phải được thêm tiền tố bằng tên loại của chúng để bạn có thể sử dụng chúng.
Hành vi của các thành viên dữ liệu tĩnh của một hợp không khác với hành vi của các thành viên dữ liệu tĩnh của một lớp.
Sự kết hợp tồn tại trong C nên C++ cũng phải có sự kết hợp. Nhưng các hợp nhất rất khó xác định trong mô hình đối tượng C++, khó sử dụng và có nhiều vấn đề khác. Do đó, bạn có thể coi hợp nhất là thứ mà C++ cần nhưng không muốn xử lý. Vậy bạn sẽ làm gì với chúng?
Khi giải quyết cách thức hoạt động của các công đoàn C, bạn có thể làm cho các công đoàn hoạt động giống như C. Không có thứ gọi là thành viên tĩnh trong C, vì vậy không có mã C nào mong muốn kết hợp các thành viên liên minh tĩnh. Vì vậy... đừng kết hợp chúng. Nếu người dùng thực sự cần một thành viên tĩnh là phần thân hợp nhất của một số tập hợp loại, họ có thể dễ dàng tạo phần thân hợp nhất và tạo một thành viên tĩnh duy nhất của loại đó.
Vì vậy, người dùng không mất đi bất kỳ tính biểu cảm nào bằng cách làm cho các thành viên tĩnh trở nên khác biệt.
Giới thiệu về c++ - Tại sao các thành viên tĩnh của liên kết không được lưu trữ dưới dạng liên kết? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/55540587/
Vì câu hỏi của tôi ở đây không thể được trả lời một cách tự tin nên tôi hỏi lại ở đây với hy vọng ai đó biết chắc: Có sự khác biệt nào (ngoài cú pháp) giữa một con trỏ tới một liên kết và một liên kết chứa các con trỏ tới các phần tử của nó không? Một ví dụ về hội được tạo ra trong này là
Trong ngôn ngữ C, có thể xác định một phần thân hợp nhất trong một phần thân hợp nhất khác không? Nếu không thì tại sao lại không thể? Hoặc nếu vậy, nó có thể được sử dụng ở đâu? Câu trả lời tốt nhất giả sử bạn muốn xác định: union myun { int x;
Trong C, có thể xác định một liên minh trong một liên minh khác không? Nếu không thì tại sao lại không thể? Hoặc nếu vậy, nó có thể được sử dụng ở đâu? Câu trả lời hay nhất Giả sử bạn muốn xác định: union myun { int x s;
Tôi đang đọc một số mã và tìm thấy một cái gì đó như thế này: typedef union { int int32; int time_t date;
Tôi đang học Lua và tôi thích sử dụng dấu hai chấm (:) cho các phương thức. Thật không may, nó không hoạt động ở mọi nơi. Hãy xem mã của tôi: set = {} local mt = {} function Set: new(m) local set = {} setmetatable()
Tôi đang gặp một số vấn đề về hiệu suất, tôi có truy vấn sau: CHỌN * TỪ Foo UNION CHỌN * TỪ Boo UNION CHỌN * TỪ Koo Tôi chắc chắn Koo sẽ không trả lại bất kỳ bản sao nào
Câu hỏi này đã có câu trả lời ở đây: Khởi tạo cấu trúc C++ (16 câu trả lời) Đã đóng vào tháng trước. Tôi đang cố gắng sử dụng một số cho các mục tiêu được nhúng
Sự khác biệt giữa UNION và UNION ALL là gì? Câu trả lời hay nhất UNION loại bỏ các bản ghi trùng lặp (tất cả các cột trong kết quả đều giống nhau), UNION ALL thì không. Hiệu suất sẽ bị ảnh hưởng khi sử dụng UNION thay vì UNION ALL,
Tôi muốn sử dụng toán tử hợp trên hai bảng. Tôi muốn tập kết quả loại bỏ các giá trị trùng lặp do liên kết tạo ra, nhưng không loại bỏ các giá trị trùng lặp tồn tại trước trong bảng. Hãy xem xét mã này... chọn b từ (giá trị (1), (2), (2
Tôi biết rằng UNION loại bỏ các bản sao nhưng nó thay đổi thứ tự kết quả ngay cả khi không có bản sao. Tôi có hai câu lệnh chọn và không có thứ tự câu lệnh nào ở bất kỳ đâu tôi muốn hợp nhất chúng hay không (tất cả), tức là CHỌN MỘT UNI
Về cơ bản, tôi có một biến struct foo { /* biểu thị thành viên tích cực của liên minh */ enum whichmembe
Tôi có một truy vấn lớn thực hiện UNION ALL trên nhiều bảng (mỗi bảng có hàng nghìn hàng) và sau đó xuất ra bảng tạm thời trước khi quay lại. Dạng cũ: SELECT * FROM (SELECT `a` AS `Human rea
Sự khác biệt giữa UNION và UNION ALL là gì? Câu trả lời hay nhất UNION loại bỏ các bản ghi trùng lặp (tất cả các cột trong kết quả đều giống nhau), UNION ALL thì không. Hiệu suất sẽ bị ảnh hưởng khi sử dụng UNION thay vì UNION ALL,
Nếu tôi có hai cấu trúc hàng hợp: struct A { A() {} ~A() {} union { vector vi;
Hãy xem xét đoạn mã sau mà tôi đã viết: #include #include union myAccess { uint16_t access16;
Tôi đang cố gắng tìm hiểu xem bạn nhận được gì từ việc dễ dàng sắp xếp các biến trong C99: Ngoại lệ đối với quy tắc đặt bí danh nghiêm ngặt trong C từ 6.5.2.3 Cấu trúc và liên kết
Tôi đang chọn một khóa ngoại cột từ nhiều bảng thông qua UNION hoặc UNION ALL. Khi sự trùng lặp không phải là vấn đề đáng lo ngại, thông thường nên sử dụng UNION ALL thay vì UNION để giải quyết các vấn đề về hiệu suất. Tuy nhiên, trong tập lệnh gọi PHP của tôi, vòng lặp
Trong C++, một liên minh có thể chứa các thành viên tĩnh, trong trường hợp là một lớp, thuộc về một lớp và do đó chung cho tất cả các đối tượng. liên U { dài l; tĩnh dài
Có ai có thể đề cập đến sự khác biệt giữa liên kết thông thường và ẩn danh (hoặc cấu trúc) không? Tôi vừa tìm thấy một điều: Bạn không thể xác định các hàm trong các liên kết ẩn danh. Câu trả lời hay nhất Bạn không cần toán tử dấu chấm "." để truy cập các phần tử hợp nhất ẩn danh. #bao gồm
Tôi có thể đang phức tạp hóa vấn đề này quá mức.. Tôi đang cố gắng tạo một hệ thống menu phân cấp có thể tái sử dụng khá nhiều trong C trên Arduino cho một ứng dụng nhúng. Tôi có các cấu trúc để biểu diễn các loại mục menu khác nhau, bao gồm các menu con đó và sự kết hợp của các mục menu này là
Tôi là một lập trình viên xuất sắc, rất giỏi!