对于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#对于引用外部文件成员使用的区别的更多相关文章

  1. Spring(二)--FactoryBean、bean的后置处理器、数据库连接池、引用外部文件、使用注解配置bean等

    实验1:配置通过静态工厂方法创建的bean  [通过静态方法提供实例对象,工厂类本身不需要实例化!] 1.创建静态工厂类 public class StaticFactory { private st ...

  2. Spring中配置文件中引用外部文件

    src\dayday\conn.java package dayday;import java.sql.Connection;import java.sql.DriverManager;import ...

  3. js/css在html文档中的引用外部文件方式对比

    包含css样式表和js脚本的最好方式是使用外部文件,因为css/js和html标记文档可以清晰地分离. css的外部引用写在<head></head>中: <head&g ...

  4. Spring 后置处理器 PropertyPlaceholderConfigurer 类(引用外部文件)

    一.PropertyPlaceholderConfigurer类的作用 PropertyPlaceholderConfigurer 是 BeanFactory 后置处理器的实现,也是 BeanFact ...

  5. postman使用教程7-参数化引用外部文件测试数据

    前言 当同一个接口需要测试不同的参数时,需用到参数化的概念.postman支持从外部文件读取测试数据参数化 设置参数化变量 新建一个collections 专门测试登录接口 设置集合变量usernam ...

  6. 关于<appSettings file="app.config" >引用外部文件的配置值

    web.config文件中,appSetting节点引用了外部的配置文件, <appSettings file="app.config"> </appSettin ...

  7. WEB-INF目录下的jsp怎么引用外部文件:js,css等

    在项目中,为了安全.我们通常会将jsp文件放在WEB-INF下面,对于放在WEB-INF下面的js或是css等资源文件.我们通常可以通过相对路径来引用,而如果是放在WEB-INF之外的js 或是 cs ...

  8. postman引用外部文件中的变量和数据

    接口参数显示: 点击collections下文件夹test0424右边的箭头,点击run按钮: DataFile导入txt文件: 预览文件数据: 运行,成功:

  9. laravel如何引用外部文件

    (1).首先在app\Http\routes.php中定义路由: 1 2 3 Route::get('view','ViewController@view'); Route::get('article ...

随机推荐

  1. EMQTT测试--安装与测试 (windows)

    我下载的是windows版 安装 参考http://emqtt.com/docs/install.html 将下载的压缩包解压,我解压到了D盘 命令行窗口,cd到程序目录 控制台模式启动: .\bin ...

  2. windows 10 右键菜单 使用vscode打开 快捷键

    呼出菜单栏(鼠标右键或快捷键shift+f10)之后按i 资料: 1.如何为windows 10添加右键context menu item https://stackoverflow.com/ques ...

  3. Maven 安装 / 常用配置 / 阿里maven中央仓库

    Maven 官方下载地址: http://maven.apache.org/download.cgi 可以选择清华的镜像: 解压在settings.xml里面配置阿里中央仓库: <mirror& ...

  4. 【HANA系列】SAP 一位SAP培训顾问的建议:SAP HANA应该如何学习?

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP 一位SAP培训顾问的建议 ...

  5. cocos2dx基础篇(2) 第一个程序

    [本节内容] 1.程序的基本组成:CCSprite(精灵).CCLayer(层).CCScene(场景).CCDirector(导演) 2.分析HelloWorld源码. 一.基本组成 cocos2d ...

  6. Buffer对象与JSON对象相互转换

    > buffer=new Buffer('换汤不换药');<Buffer e6 88 91 e7 88 b1 e4 bd a0 ef bc 8c e7 89 a9 e7 90 86> ...

  7. selenium-模拟鼠标

    需要导入的包: from selenium.webdriver import ActionChains 一.模拟鼠标右键 ActionChains(self.driver).context_click ...

  8. idea 如何运行maven项目

    1:run→Edit configurations 2:配置tomcat,左边如果没有tomcat server的话,点击 “+”,选择tomcat  server→local,在右边server选项 ...

  9. Spring MVC 中使用AOP 进行统一日志管理--注解实现

    1.AOP简介 AOP称为面向切面编程 AOP的基本概念 (1)Aspect(切面):通常是一个类,里面可以定义切入点和通知 (2)JointPoint(连接点):程序执行过程中明确的点,一般是方法的 ...

  10. 面试宝典:25个最经典的JavaScript面试题及答案

    1.使用 typeof bar === "object" 来确定 bar 是否是对象的潜在陷阱是什么?如何避免这个陷阱? 尽管 typeof bar === "objec ...