C++类学习(一)类的构造和使用

本文记录在本地创建类,实用类的过程,目的是为了在刷leetcode时能够本地调试。

  • 创建头文件来构造类声明

 问题1:创建头文件后,在定义构造函数时,函数使用的参数为类的成员变量,此时是否需要在参数前添加修饰限定?

这个问题很重要,要记住构造函数的参数表示的不是类成员,而是赋给类成员的值,个人理解就是构造函数的参数是形参,形式上的参数,相当于一个代号,没有实际意义,只是用户与类之间进行交互的接口。既然构造函数的参数不能是类成员,那么就不存在需不需要添加修饰限定的问题了。

问题2:问题1中提到了成员函数的参数,那如果不是构造函数的成员函数,其参数是否跟普通函数参数一样 ?即在成员函数定义中,形参可以任意指定名称?

最好不要使用类成员名作为成员函数的形参名。

问题3:编写头文件时,为了防止多次包含同一个头文件,使用预编译指令

#pragma once
#ifndef XXX
#define XXX
...
#endif

其中的#define语句为宏定义,宏名称是不是头文件的名称???

个人理解:不是。这不是一码事,一般的宏定义的格式为“#define 宏名 替换内容”,作用就是在编译之前找到所有宏名的位置,用替换内容替换掉宏名,再进行编译。这里没有替换内容,结合#ifndef和#endif语句,只是让编译器查找代码中是否有宏名,有的话就不再执行省略号位置的代码块,没有则执行。

问题3:在头文件中定义类的时候,包含其他头文件的问题。当我要为类定义一个返回值为vector类的成员函数时,需要包含头文件vector,但是在使用vector类的时候,不能直接用vector,被提示需要修饰限定,于是我无脑加了std::,竟然可以,这就很迷人了。。。因为我根本没有包含头文件iostream,因为名称空间是在头文件iostream中定义的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值