C++快速入门扫盲总结

本文是C++快速入门的扫盲总结,涵盖了C++的新特性,如数据类型和初始化方式的改进。介绍了C++的输入输出方式,使用cin和cout替代scanf和printf。接着讲解了C++的命名空间,面向对象编程的基本概念,包括类、对象、构造函数、析构函数、this指针、继承、重载和多态。详细阐述了各种面向对象特性及其应用场景,帮助初学者理解C++的核心概念。
摘要由CSDN通过智能技术生成

C++语言新特性

C++的新特性

C++比 C 语言新增的数据类型是布尔类型(bool)。 但是在新的 C 语言标准里已经有布尔类型了,但是在旧的 C 语言标准里是没有布尔类型的,编译器也无法解释布尔类型。
在传统的 C 语言里,变量初始化时必须在程序的前面定义在前面, 而 C++则是可以随用随定义。 C++也可以直接初始化,比如 int x(100);这样就直接赋值 x=100,这些都是 C++特性的好处。 这里只说这些常用的新特性,其他特性不做描述或者解释了。

C++的输入输出方式

在C语言中,我们是这样输入或者输出的。
在这里插入图片描述
在 C++里,我们使用以 cin 和 cout 代替了 scanf 和 printf。在输入和输出的流程上是不变的,只是关键字变了,用法也变了。
在这里插入图片描述
要说效率上,肯定是 C 语言的 scanf 和 printf 的效率高, 但是没有 C++中的 cin 和 cout 使用方便。

C++之命名空间namespace

#include <iostream>    //无.h的是标准输入输出流要用命名空间

using namespace std;

int main()
{
   
    cout << "Hello World!" << endl;
    return 0;
}

/***********************输出结果:****************************/
Hello World!

下面通过一个简单的例子来介绍自定义的命名空间和使用自定义的命名空间。

#include <iostream>    //无.h的是标准输入输出流要用命名空间

using namespace std;

//自定义了命名空间 A,里面定义了一个变量 x,并将 x 赋值为 1;定义了一个函数fun(),并在 fun()加了输出打印语句 cout<<"A namespace"<<endl;。
namespace A {
   
    int x = 1;
    void fun( ) {
   
        cout <<"A namespace" <<endl;
    }
}

using namespace A; //声明使用命名空间A。

int main()
{
   
    fun();     //在第 11 行声明了命名空间 A 后, 才能直接使用 fun();否则要写成 A::fun();
    A::x = 3;  //将 A 命名空间下的 x 重新赋值为 3。
    cout << A::x << endl;   //打印出 A 命名空间下的 x 的值。
    A::fun();  //调用 A 命名空间下的 fun()。
    return 0;
}


/***********************输出结果:****************************/
A namespace
3
A namespace

C++面向对象

面向对象的三大特征是继承,多态和封装。

类和对象

C++ 在 C 语言的基础上增加了面向对象编程, C++ 支持面向对象程序设计。类是 C++的核心特性,通常被称为用户定义的类型。类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。类中的数据和方法称为类的成员。函数在一个类中被称为类的成员。

#include <iostream>    //无.h的是标准输入输出流要用命名空间
#include <string>
using namespace std;

//定义了一个 Dog类
class Dog {
   

public:
    //访问限定符 public(公有的), 此外还有 private(私有的) 和 protected(受保护的),不写访问限定符默认是 private
      string name;
      int age;

      void run () {
   
          cout << "小狗的名字是:"<< name << "," << "年龄是" << age <<endl;
      }
};

int main()
{
   

    Dog dog1;  //从栈中实例化一个对象 dog1

    dog1.name = "旺财";
    dog1.age = 2;
    dog1.run();

    Dog *dog2 = new Dog();   //从堆中实例化对象,使用关键字 new 的都是从堆中实例化对象。
    //从堆中实例化对象需要开辟内存,指针会指向那个内存,如果 new 没有申请内存成功, dog2 即指向 NULL, 程序就自动退出,下面的就不执行了,写这个是为了严谨
    if (NULL == dog2) {
   
        return 0;
    }
    dog2 -> name = "富贵";
    dog2 -> age = 1;
    dog2 -> run();

    //释放内存,将 dog2 重新指向 NULL
    delete dog2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

六竹书生__wa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值