我在一个示例项目中看到了下面的代码。关于我所拥有的书的内容,我找不到一个令人满意的答案。我对此有几个问题。
在struct中的first_name和last_name变量中指定与使用外部结构
如果有数百万张唱片,就性能而言,你更喜欢哪一张,应该是哪一张
或者有朋友可以分享有关C++技巧和义务的信息吗
非常感谢所有花时间回答的人
struct Name
{
string first_name; // Name
string last_name; // Last Name
};
class CPerson
{
protected:
Name m_name; // Struct
public:
void SetName(string n);
string GetName(){ return(m_name.first_name+" "+m_name.last_name); }
private:
string GetFirstName(string full_name);
string GetLastName(string full_name);
};
void CPerson::SetName(string n)
{
m_name.first_name = GetFirstName(n);
m_name.last_name = GetLastName(n);
}
string CPerson::GetFirstName(string full_name)
{
int pos = StringFind(full_name," ");
if(pos>0) StringSetCharacter(full_name,pos,0);
return(full_name);
}
string CPerson::GetLastName(string full_name)
{
string ret_string;
int pos = StringFind(full_name," ");
if(pos>0) ret_string=StringSubstr(full_name,pos+1);
else ret_string = full_name;
return(ret_string);
}
没有区别,因为这个变量的使用是在编译时解决的。如果你使用struct,那就由你决定了,如果你在某个地方同时使用first_name
和last_name
,那么使用struct可能会更容易,也更可读。