C++与C#对于引用外部文件成员使用的区别
对于C++控制台项目,如果有两个.cpp的文件都想引用同一个类的成员时,我们可以定义一个类,然后在类的头文件中添加extern来修饰。

Box.cpp如下:
#include "Box.h" Box Box1;
Box.h如下:
class Box
{
public:
int length; // 盒子的长度
int breadth; // 盒子的宽度
int height; // 盒子的高度
}; extern Box Box1;
如果Class1.cpp和Program.cpp都想引用对象Box1中的成员时,添加头文件的引用#include "Box.h"即可,
Program.cpp代码如下:
#include <iostream>
#include "Box.h"
#include "Class1.cpp" using namespace std; int main()
{
Box1.height = ;
printf("Box1 的高度是:%d\n",Box1.height); Box Box2;
Box2.height = ;
printf("Box2 的高度是:%d\n", Box2.height); Class1 class1;
class1.fun();
}
Class1.cpp代码如下:
#include <iostream>
#include "Box.h" using namespace std; class Class1
{
public :
void fun()
{
printf("Box1 的高度是:%d\n", Box1.height);
}
};
运行结果如下:

对于C#控制台项目,由于C#没有头文件,所以不能像C++项目那样操作,那么C#项目两个.cs文件都想访问同一个对象的成员怎么操作呢?答案就是:static

我们在Box.cs文件下定义类,代码如下:
namespace ConsoleApp1
{
public class Box
{
//实例化后对象才能引用的成员
public int length; // 盒子的长度
public int breadth; // 盒子的宽度
public int height; // 盒子的高度 //不需要实例化对象直接引用的成员
static public int length1; // 盒子的长度
static public int breadth1; // 盒子的宽度
static public int height1; // 盒子的高度
}
}
Program.cs代码如下:
using System; namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Box Box1 = new Box(); Box1.height = ;
Console.WriteLine("Box1的高度是:{0}\n", Box1.height); Box.height1 = ;
Console.WriteLine("Box的高度是:{0}\n", Box.height1); Class1 class1 = new Class1();
class1.fun();
}
}
}
Box1对象里的length,breadth,height成员只能在Program.cs文件下访问操作,而不能在Class1.cs文件下操作,但是Box.height1,Box.breadth1,Box.height1静态成员既可以在Program.cs文件中访问又可以在Class1.cs文件中访问。
Class1.cs代码如下:
using System; namespace ConsoleApp1
{
public class Class1
{
public void fun()
{
Console.WriteLine("Box的高度是:{0}\n", Box.height1);
}
}
}
C++与C#对于引用外部文件成员使用的区别的更多相关文章
- Spring(二)--FactoryBean、bean的后置处理器、数据库连接池、引用外部文件、使用注解配置bean等
实验1:配置通过静态工厂方法创建的bean [通过静态方法提供实例对象,工厂类本身不需要实例化!] 1.创建静态工厂类 public class StaticFactory { private st ...
- Spring中配置文件中引用外部文件
src\dayday\conn.java package dayday;import java.sql.Connection;import java.sql.DriverManager;import ...
- js/css在html文档中的引用外部文件方式对比
包含css样式表和js脚本的最好方式是使用外部文件,因为css/js和html标记文档可以清晰地分离. css的外部引用写在<head></head>中: <head&g ...
- Spring 后置处理器 PropertyPlaceholderConfigurer 类(引用外部文件)
一.PropertyPlaceholderConfigurer类的作用 PropertyPlaceholderConfigurer 是 BeanFactory 后置处理器的实现,也是 BeanFact ...
- postman使用教程7-参数化引用外部文件测试数据
前言 当同一个接口需要测试不同的参数时,需用到参数化的概念.postman支持从外部文件读取测试数据参数化 设置参数化变量 新建一个collections 专门测试登录接口 设置集合变量usernam ...
- 关于<appSettings file="app.config" >引用外部文件的配置值
web.config文件中,appSetting节点引用了外部的配置文件, <appSettings file="app.config"> </appSettin ...
- WEB-INF目录下的jsp怎么引用外部文件:js,css等
在项目中,为了安全.我们通常会将jsp文件放在WEB-INF下面,对于放在WEB-INF下面的js或是css等资源文件.我们通常可以通过相对路径来引用,而如果是放在WEB-INF之外的js 或是 cs ...
- postman引用外部文件中的变量和数据
接口参数显示: 点击collections下文件夹test0424右边的箭头,点击run按钮: DataFile导入txt文件: 预览文件数据: 运行,成功:
- laravel如何引用外部文件
(1).首先在app\Http\routes.php中定义路由: 1 2 3 Route::get('view','ViewController@view'); Route::get('article ...
随机推荐
- pandas中根据列的值选取多行数据
# 选取等于某些值的行记录 用 == df.loc[df['column_name'] == some_value] # 选取某列是否是某一类型的数值 用 isin df.loc[df['column ...
- linux 下载jdk 、maven、git
jdk: wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-secureback ...
- 阶段3 2.Spring_03.Spring的 IOC 和 DI_7 spring中bean的细节之作用范围
bean的作用范围调整. 我们的bean通常情况下都是一个单例的模式 Spring是否也知道这些都是单例 构造函数只走了一次.也就是spring这个对象默认情况就是单例的 scope属性 定义bean ...
- Redis 入门 3.3 散列类型
3.3.1 介绍 散列类型(hash)的键值也是一种字典结构,其储存了字段(field)和字段值的映射,但字段值只能是字符串,不支持其他数据类型,换句话说,散列类型不能嵌套其他的数据类型.一个散列 ...
- gin框架教程一: go框架gin的基本使用
我们在用http的时候一般都会用一些web框架来进行开发,gin就是这样的一个框架,它有哪些特点呢 一:gin特点 1.性能优秀2.基于官方的net/http的有限封装3.方便 灵活的中间件4.数据绑 ...
- Action Script 3.0入门基本概念——IDE&编译与运行
[编写ActionScript代码的工具] ActionScript代码是用纯文本编写的,所以ActionScript程序可以仅由简单的文本编辑器来创建,如Windows上的记事本或Macintosh ...
- mac book 显示隐藏系统文件夹
打开Finder Finder->Finder Preferences->勾选 Device分类下的MAC username 在Teminal下输入命令 defaults write co ...
- Spring MVC 中使用AOP 进行事务管理--注解实现
注解实现实现事务管理很简单,和配置式差不多,配置文件的头文件也要加相应的支持.配置数据源,并开启事务管理支持即可. <bean id="transactionManager" ...
- 洛谷 P3857 彩灯 题解
题面 对于每一个开关,我们可以看成一个0/1串,初始是一个全部为0的串,要求经过这些开关的操作后,出现的不同的0/1串的个数 建模就是存在一些数,这些数异或起来是0(等价于没有操作).那么需要求一个集 ...
- HNUSTOJ-1674 水果消除(搜索或并查集)
1674: 水果消除 时间限制: 2 Sec 内存限制: 128 MB提交: 335 解决: 164[提交][状态][讨论版] 题目描述 “水果消除”是一款手机游戏,相信大家都玩过或玩过类似的游戏 ...