如题,我可以这样写吗?
///A.h
class A
{
public char* Name;
public A();
public int GetAge();
}
///A.cpp
class A
{
private int Age;
public A()
{
}
public int GetAge()
{
return Age;
}
}
///Main.cpp
#include "A.h"
...
...//引用A
...
好像有些编译器可以,有些不可以,如果不可以,那类又是如何保护私有数据的呢?直接改一下头文件里的访问权限修饰符,不就可以访问了吗?请知情者详解,谢谢!
哦,“A.cpp”忘记“#include "A.h" "了
C++ 类的定义可以分在头文件和源文件内写吗?
答案:1 悬赏:10 手机版
解决时间 2021-02-10 14:15
- 提问者网友:太高姿态
- 2021-02-09 20:03
最佳答案
- 五星知识达人网友:duile
- 2021-02-09 20:19
一般都是代表一个基本功能的源文件引用相应的头文件。 一个 相关功能的模块可能有若干对源文件和头文件组成。这是基于组件编程的核心。 在我看来,他的好处是巨大的,是java不可比拟的,也是不可复制的: c语言中头文件中一般定义了函数的声明、结构体的定义、宏定义。(常量和全局变量最好放到源文件中) 1) 从业务扩展性上看:头文件中放函数的声明,函数由源文件实现,这就是将面向接口编程:接口和实现分开,这在面对业务变更频繁的需求中技术实现的好处是显而易见的--只要定义出良好地、扩展性高的接口,实现是可以很方便的更换。 2) 从程序架构上看:代码在在大型程序中 需要分成不同的模块,单一模块中又可能分为不同的业务功能单元,他们间有很多相互的调用。 头文件中的方法声明、结构体定义、宏就都可以充当这部分的模块与模块间、业务功能单位间的接口调用。模块与模块间,功能单元与功能单元间都是面向接口的调用,耦合性低,这正是基于组件编程的核心思想。 3) 从某些技术角度实现上看:头文件可通过宏定义来保证类定义、结构体定义、宏定义的唯一性。确实很方便,不容易出错。 在用makefile编译程序时,各个功能单元单独编译,构成中间文件.最终这些中间文件链接成可执行程序,在这些中间文件中重复引用同一头文件是不可避免的。但如果头文件有保护性编程就可以很容易保证类、结构体、宏定义的唯一性 ----最终链接成可执行程序时,可执行程序中代码区中只会有唯一的类、结构体、宏的定义,其他都因为不满足唯一性保护失效。这样的实现是不是很‘优雅’:)))? 我不知道你是否是这样认为,至于我,我是这样认为,haha~
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯