对于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. 远程连接mysql要点 虚拟主机定义与分类

    远程连接mysql:通过主机地址与端口号连接 1. 主机地址:找到主机电脑 2. 端口号:找到对应mysql软件 mysql客户端访问服务端需要进行寻找匹配:连接认证-h 主机地址 例如 -hloca ...

  2. CentOS7环境下yum方式安装MySQL5.7

    这篇博文主要是从网上摘抄的,做个记录,以后如果有同样的需求,可以直接翻自己的记录.感谢两位大神: https://www.cnblogs.com/luohanguo/p/9045391.html ht ...

  3. Linux_LVM&Quota

    目录 目录 磁盘分区RHEL6 磁盘管理指令 mount fdisk lvm LVM图形化 quota quota指令 磁盘分区RHEL6 磁盘管理指令 cfdisk -l 查询分区状况 df -Th ...

  4. mysql登录的三种方式

    1.远程登录mysql 先授权:如:grant all on *.* to 'root'@'192.168.81.130' identified by '52033dd';查看是否生效:select ...

  5. Spring Boot 中使用 WebSocket 实现一对多聊天及一对一聊天

    为什么需要WebSocket? 我们已经有了http协议,为什么还需要另外一个协议?有什么好处? 比如我想得到价格变化,只能是客户端想服务端发起请求,服务器返回结果,HTTP协议做不到服务器主动向客户 ...

  6. C语言循环队列

    #include<stdio.h> #include<stdlib.h> #include<string.h> //循环队列 typedef struct { in ...

  7. Jmeter+TCP\Sockets(8583)报文压力测试

    Jmeter一般被用来测试HTTP协议,我第一次拿来测试socket协议,pos机传输报文为8583,协议属于socket,也是TCP协议的一种,网上有LR怎么测试8583报文,我就研究了一下怎么用J ...

  8. 【VS开发】【图像处理】RGB Bayer Color分析

    RGB Bayer Color分析 Bayer色彩滤波阵列 拜耳色彩滤波阵列(Bayer Color Filter Array,CFA)是非常有名的彩色图片的数字采集格式.色彩滤波器的模式如上图所示, ...

  9. Elasticsearch-安装、日志解读

    ES-安装.日志解读 1. 准备tar包 https://www.elastic.co/cn/products/elasticsearch2. 解压 tar -zxvf elasticsearch-. ...

  10. Linux下面MariaDB 管理命令基础使用

    MariaDB 是 MySQL 的一个分,由于某些原因,使之取代了Mysql成为了 RHEL/CentOS 7 的默认数据库.针对数据库的操作我们经常做的操作就是增删查改,接下来就介绍下 MariaD ...