C++学习笔记01

::

::C++ 中表示作用域,和所属关系。
:: 是运算符中等级最高的,它分为三种,分别如下:

作用域符号:

作用域符号::的前面一般是类名称,后面一般是该类的成员名称,C++为例避免不同的类有名称相同的成员而采用作用域的方式进行区分。

例如:A,B 表示两个类,在 A,B中都有成员 member

那么:

  • 1、A::member就表示类A中的成员member
  • 2、B::member就表示类B中的成员member
全局作用域符号:

全局作用域符号::当全局变量在局部函数中与其中某个变量重名,那么就可以用 ::来区分,例如:

char  zhou;  //全局变量
void  sleep()
{
   
  char  zhou; //全局变量
  char(局部变量) = char(局部变量)*char(局部变量);
  ::char(全局变量) =::(全局变量) *char(全局变量)
}
作用域分解运算符:

::是 C++ 里的作用域分解运算符,“比如声明了一个类A,类A 里声明了一个成员函数 void f(),但没有在类的声明里给出f的定义,那么在类外定义 f 时,就要写成 voidA::f(),表示这个 f() 函数是类 A 的成员函数。例如:

class CA 
{
   
public:
  int ca_var;
  int add(int a, int b);
  int add(int a);
}
//那么在实现这个函数时,必须这样写:
int CA::add(int a, int b)
{
   
  return a + b;
}
//另外,双冒号也常常用于在类变量内部作为当前类实例的元素进行表示,比如:
int CA::add(int a)
{
   
  return a + ::ca_var;
}
//表示当前类实例中的变量ca_var。

C++ 简介

C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程面向对象编程泛型编程

C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。

C++是由 Bjarne Stroustrup于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,最初命名为带类的C,后来在 1983 年更名为 C++。

C++C的一个超集,事实上,任何合法的C程序都是合法的 C++程序。

注意:使用静态类型的编程语言是在编译时执行类型检查,而不是在运行时执行类型检查。

面向对象程序设计

C++ 完全支持面向对象的程序设计,包括面向对象开发的四大特性:

  • 封装
  • 抽象
  • 继承
  • 多态
标准库

标准的C++ 由三个重要部分组成:

  • 核心语言,提供了所有构件块,包括变量、数据类型和常量,等等。
  • C++ 标准库,提供了大量的函数,用于操作文件、字符串等。
  • 标准模板库(STL),提供了大量的方法,用于操作数据结构等。
C++ 基本语法

C++程序可以定义为对象的集合,这些对象通过调用彼此的方法进行交互。现在让我们简要地看一下什么是对象方法即时变量

对象 - 对象具有状态和行为。例如:一只狗的状态 - 颜色、名称、品种,行为 - 摇动、叫唤、吃。对象是类的实例。
类 - 类可以定义为描述对象行为/状态的模板/蓝图。
方法 - 从基本上说,一个方法表示一种行为。一个类可以包含多个方法。可以在方法中写入逻辑、操作数据以及执行所有的动作。
即时变量 - 每个对象都有其独特的即时变量。对象的状态是由这些即时变量的值创建的。

C++ 标识符

C++ 标识符是用来标识变量函数模块,或任何其他用户自定义项目的名称。
一个标识符以字母A-Za-z 或下划线 _开始,后跟零个或多个字母、下划线和数字(0-9)。
C++标识符内不允许出现标点字符,比如@&%C++是区分大小写的编程语言。

C/C++可以使用带有$ 的标识符:

#include "stdio.h"

int main(){
   
        int _2a$=0x99;
        printf("%d\n",_2a$);
        return 0;
}

$ 可以放在前面:

#include "stdio.h"

int main(){
   
    int $a=0x99;
    printf("%d\n",$a);
    return 0;
}

甚至是:

#include "stdio.h"

int main(){
   
    int $8=0x99;
    printf("%d\n", $8);
    return 0;
}
三字符组

三字符组就是用于表示另一个字符的三个字符序列,又称为三字符序列。三字符序列总是以两个问号开头。
三字符序列不太常见,但 C++ 标准允许把某些字符指定为三字符序列。以前为了表示键盘上没有的字符,这是必不可少的一种方法。
三字符序列可以出现在任何地方,包括字符串、字符序列、注释和预处理指令。
下面列出了最常用的三字符序列

三字符组 替换
??= #
??/ \
??’ ^
??( [
??) ]
??!
??< {
??> }
??- ~

如果希望在源程序中有两个连续的问号,且不希望被预处理器替换,这种情况出现在字符常量、字符串字面值或者是程序注释中,可选办法是用字符串的自动连接:"...?""?..."或者转义序列:"...?\?..."

从Microsoft Visual C++ 2010版开始,该编译器默认不再自动替换三字符组。如果需要使用三字符组替换(如为了兼容古老的软件代码),需要设置编译器命令行选项/Zc:trigraphs

g++仍默认支持三字符组,但会给出编译警告。

嵌套注释

块注释符(/*...*/)是不可以嵌套使用的。但可以在一种注释内嵌套另一种注释。

/* 用于输出 Hello World 的注释
 
cout << "Hello World"; // 输出 Hello World
 
*/

此外,我们还可以使用·#if 0 ... #endif 来实现注释,且可以实现嵌套,格式为:

#if 0
   code
#endif 

也可以把#if 0改成 #if 1来执行 code的代码。

这种形式对程序调试也可以帮助,测试时使用 #if 1来执行测试代码,发布后使用 #if 0来屏蔽测试代码。

#if后可以是任意的条件语句。
下面的代码如果 condition条件为true执行 code1 ,否则执行 code2

#if condition
  code1
#else
  code2
#endif

C++ 数据

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值