首页 > 其他分享 >声明和定义,初始化和赋值

声明和定义,初始化和赋值

时间:2024-04-26 11:13:19浏览次数:19  
标签:初始化 定义 int Person declaration 赋值

在学习C\C++的过程中有两组概念需要注意:声明(declarartion)和定义(definition)、初始化(initialization)和赋值(assginment)。C语言中初始化和赋值可以认为是一样的,但在C++中这两个是不同的概念。

/*

	定义和声明
	
*/


int i;	//全局变量 同时声明和定义i和j
int j = 10;

extern int k;	//declaration
enum fruit{ apple = 1, banana, pear };	//declaration enumeration fruit

//declaration class Person
class Person{
private:
	const string name;

public:
	Person(const string& sname) : name(sname) { ... }//初始化参数列表
	Person();			//default constructor
    Person(const Person&);
    virtual ~Person();
}

void func(int i);	//declaration
void func(int i){	//definition
    cout << i <<endl;
}

/*

	初始化和赋值
	
*/

Person p1;	//调用默认构造函数
Person p2(p1);	//调用拷贝构造函数Person(const Person&)进行初始化
Person p2 = p1;	//赋值,浅拷贝,非静态成员依次赋值
Person p3("JAY");	//初始化参数列表




标签:初始化,定义,int,Person,declaration,赋值
From: https://www.cnblogs.com/qianxiaohan/p/18159559

相关文章

  • 读《我和Labview》6用户自定义控件
    枚举枚举型控件与下拉列表控件的比较单选按钮控件创建和使用一个枚举控件用户自定义控件创建一个自定义控件自定义控件的组成部分修改控件的组成部分简单动画自定义类型严格自定义类型......
  • 自定义顺序栈-完成十进制转十六进制
    十进制转十六进制输出/********************************************************************* 文件名称: 十进制转十六进制输出* 文件作者:[email protected]* 创建日期:2024/04/25* 文件功能:对双向链表的增删改查功能的定义* 注意事项:None*......
  • 数据结构_链表_单向循环链表的初始化、插入、删除、修改、查询打印(基于C语言实现)
    版本:2024年4月25日V1.0发布于博客园/***@filename:CircularLinkedList.c*@brief:实现单向循环链表的相关功能*@author:[email protected]*@date:2024/04/25*@version:1.1*@note:*CopyRight(c)2023-2024RISE_A......
  • mORMot2 定义多对多关系
    mORMot2定义多对多关系处理“hasmany”和“hasmanythrough”关系时,主要涉及到的是多对多关系的数据库设计和管理。以下是对您提供的文本的技术性翻译和解释:多对多关系是通过一个专门为这种关系创建的表来追踪的,将这个关系转变为两个指向相反方向的一对多关系。默认情况下,......
  • 初始化使用花括号还是圆括号?
    C++11引入了使用{}来初始化对象,这样初始化一个对象有如下几种方法:classMyClass{public:intvalue;MyClass(int_val):value(_val){}};intmain(){MyClasscls1(1);MyClasscls2{1};MyClasscls3={1};//会调用默认拷贝函数MyClasscl......
  • 自定义error 类型
    packagemainimport( "errors" "fmt")typeerrorCreateVolumestruct{ sstring}funcNewErrorCreateVolume(textstring)error{ returnerrorCreateVolume{text}}func(eerrorCreateVolume)Error()string{ returne.s}funcIs......
  • 在Win10(Win11)或Win Server的WSL上自定义安装Ubuntu(无微软商店)
     在Win10(Win11)WinServer里的WSL上自定义安装Ubuntu(无微软商店) 什么是WSLWSL是Windows系统里的Linux子系统,WindowsSubsystemforLinux(WSL)。我们可以在WindowsServer2016(或Win10/Win11等)上安装UbuntuWindowsSubsystemforLinux(WSL),可以在不退出Windows系......
  • 什么是自定义导入钩子(import hooks),他的作用
    自定义导入钩子(importhooks)是Python的导入系统中的一种机制,允许开发者自定义模块的查找和加载过程。在Python中,导入模块通常涉及几个步骤:查找模块、加载模块、初始化模块和定义模块。导入钩子可以在这些步骤中的任意一个插入自定义行为。自定义导入钩子的主要作用是扩展或......
  • 自定义双向循环链表基本函数接口
    自定义双向循环链表的函数接口/********************************************************************* 文件名称: 双向循环链表的函数接口* 文件作者:[email protected]* 创建日期:2024/04/24* 文件功能:对双向链表的增删改查功能的定义* 注意事项:No......
  • WPF自定义FixedColumnGrid布局控件
    按照上一节所讲,我已经对布局系统又所了解。接下来我就实现一个布局控件FixedColumnGrid。1.基础版布局控件机制如下,FixedColumnGrid将子控件按照水平排列,每行满两列后换行。每个控件大小相同,高度固定为50。第一步,先重载测量和排列方法protectedoverrideSizeMeasureOverrid......