【发布时间】:2021-06-17 21:12:41
【问题描述】:
看看下面的源码:
#include <iostream>
#include <string>
#ifndef _PATIENT_H_
#define _PATIENT_H_
#include "Base.cpp"
class Patient: public Base
{
private:
std::string name_;
std::string date_of_birth_;
std::string sex_;
public:
void set_name(std::string & name)
{
name_ = name;
}
std::string get_name() const
{
return name_;
}
void set_date_of_birth(std::string & date_of_birth)
{
date_of_birth_ = date_of_birth;
}
std::string get_date_of_birth() const
{
return date_of_birth_;
}
void set_sex(std::string & sex)
{
sex_ = sex;
}
std::string get_sex() const
{
return sex_;
}
};
#endif
我有两个问题:
- 应该
#include <iostream>和#include <string>在#define _PATIENT_H_里面吗? - 在setter访问器中,
const关键字应该怎么写:
一种。void set_name(const std::string & name)
湾。void set_name(std::string const & name)
?
【问题讨论】:
-
1:是,2:你更喜欢哪个。
-
仅供参考,
#include "Base.cpp"- 预处理 - 包括 anything .cpp 是代码异味。那里应该有一个Base.h,以及正确的构建步骤来构建Base.cpp以及您正在构建的任何其他内容。 -
1.是的。 2. 与我合作的大多数开发人员都是 Const West(const 出现在最前面),但我与之合作的一小部分开发人员更喜欢 East Const( const 在类型之后)。在给定的代码中,编译器无关紧要。哪个更易读。
-
病人类中没有任何东西使用来自 iostream 的任何东西。不要包括你不使用的东西。对于任何精通 C++ 的程序员来说,包含
Base.cpp似乎都是可疑的。 -
@StoryTeller-UnslanderMonica • 我更新了我的评论以反映我的限定词的来源。我在East Const阵营。