我有一個Message
類持有所有可能的元素分配內存的消息可以有:如何避免未使用的屬性
class Message {
int msg_id;
int msg_length;
char *username;
char *password;
char *usr_list;
char *to;
char *from;
char *grp_name;
int digit_1;
int digit_2;
char *msg;
};
但不同的消息類型具有不同的身體元素使對象出來的正在浪費大量的記憶。例如,我的程序接收到下列數據:
Msg -> (1, name, password)
當程序讀取1
,它創建了一個Message
對象,設置它的名稱和密碼,並將其轉發到其他類。現在剩下的屬性是空的並且未被使用,但仍然消耗內存。
我該如何解決這個問題?
更新: 訪客模式將幫助我在這種情況下,我不知道如果目標這樣的問題。
這不是一個有效的C++'類'聲明。 – Barmar
聽起來就像使用'union'和類型信息一樣。 – Bathsheba
你的大多數成員都是指針,如果你沒有爲它們分配任何東西,它們不佔用太多內存。 – Barmar