2-4小时突击C++(1)

C++进一步扩充和完善了C语言,是一种面向对象的程序设计语言。任何合法的C程序都是合法的C++程序,因此不在此赘述C++与C相类似的内容,因此本章节主要是介绍C语言没有而C++有的内容。

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

  • 封装: 是将数据和方法组合在一起,对外部隐藏实现细节,只公开对外提供的接口。这样可以提高安全性、可靠性和灵活性。
  • 继承: 是从已有类中派生出新类,新类具有已有类的属性和方法,并且可以扩展或修改这些属性和方法。这样可以提高代码的复用性和可扩展性。
  • 多态: 是指同一种操作作用于不同的对象,可以有不同的解释和实现。它可以通过接口或继承实现,可以提高代码的灵活性和可读性。
  • 抽象: 是从具体的实例中提取共同的特征,形成抽象类或接口,以便于代码的复用和扩展。抽象类和接口可以让程序员专注于高层次的设计和业务逻辑,而不必关注底层的实现细节。

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

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

引用

引用很容易与指针混淆,它们之间有三个主要的不同:

  • 不存在空引用。引用必须连接到一块合法的内存。
  • 一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。
  • 引用必须在创建时被初始化。指针可以在任何时间被初始化。

例子:

#include <iostream>
 
using namespace std;
 
int main ()
{
   // 声明简单的变量
   int    i;
   double d;
 
   // 声明引用变量
   int&    r = i;
   double& s = d;
   
   i = 5;
   cout << "Value of i : " << i << endl;
   cout << "Value of i reference : " << r  << endl;
 
   d = 11.7;
   cout << "Value of d : " << d << endl;
   cout << "Value of d reference : " << s  << endl;
   
   return 0;
}

在这些声明中,& 读作引用。

输出结果:

Value of i : 5

Value of i reference : 5

Value of d : 11.7

Value of d reference : 11.7

基本的输入输出

I/O 库头文件

<iostream>

该文件定义了和对象,分别对应于标准输入流、标准输出流、非缓冲标准错误流和缓冲标准错误流。

标准输出流(cout)

 cout是与流插入运算符 << 结合使用的,例子:

#include <iostream>
 
using namespace std;
 
int main( )
{
   char str[] = "xXJXx C++";
 
   cout << "Value of str is : " << str << endl;
}

结果:

Value of str is : xXJXx C++

C++ 编译器根据要输出变量的数据类型,选择合适的流插入运算符来显示值。<< 运算符被重载来输出内置类型(整型、浮点型、double 型、字符串和指针)的数据项。因此不需像C语言那种格式化输出,例如%d, %f, %s等等。

标准输入流(cin)

cin 是与流提取运算符 >> 结合使用的,例子:

#include <iostream>
 
using namespace std;
 
int main( )
{
   char name[50];
 
   cout << "请输入您的名称: ";
   cin >> name;
   cout << "您的名称是: " << name << endl;
 
}

结果:

请输入您的名称: xXJXx

您的名称是:xXJXx

C++ 编译器根据要输入值的数据类型,选择合适的流提取运算符来提取值,并把它存储在给定的变量中。

流提取运算符 >> 在一个语句中可以多次使用,如果要求输入多个数据,可以使用如下语句:

cin >> name >> age;

相当于:

cin >> name;

cin >> age;

 

命名空间

命名空间可作为附加信息来区分不同库中相同名称的函数、类、变量等。

一个文件夹(目录)中可以包含多个文件夹,每个文件夹中不能有相同的文件名,但不同文件夹中的文件可以重名

定义命名空间:

namespace namespace_name {

    //代码声明

}

调用带有命名空间的函数或变量:

name::code;  // code 可以是变量或函数

例子:

#include <iostream>
using namespace std;
 
// 第一个命名空间
namespace first_space{
   void func(){
      cout << "Inside first_space" << endl;
   }
}
// 第二个命名空间
namespace second_space{
   void func(){
      cout << "Inside second_space" << endl;
   }
}
int main ()
{
 
   // 调用第一个命名空间中的函数
   first_space::func();
   
   // 调用第二个命名空间中的函数
   second_space::func(); 
 
   return 0;
}

相同的函数命名为func()。

输出结果:

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

本专栏主要是介绍嵌入式软件开发岗位的相关知识和学习攻略,为大家提供一份笔试与面试手册。包括有嵌入式软件开发岗位介绍与学习攻略;校园招聘和offer疑惑问题的介绍;在笔试方面,如何刷题为笔试作准备,提供往年笔试真题;在面试方面,提供相关知识的复习重点,提供面试真题。包括有:华为、蔚来、文远、大疆、三一、深信服、亚马逊、Intel、百度、科大讯飞、OPPO、京东、中兴、比特大陆|算能、美团等等

全部评论
I/O 库头文件 <iostream> 该文件定义了和对象 佬这里是什么和对象呢</iostream>
1 回复 分享
发布于 2023-11-20 14:43 北京
请问C和C++必须都会吗?还是熟练掌握一种?
点赞 回复 分享
发布于 2023-12-01 19:39 陕西

相关推荐

伟大的烤冷面被普调:暨大✌🏻就是强
点赞 评论 收藏
分享
10-11 17:45
门头沟学院 Java
走吗:别怕 我以前也是这么认为 虽然一面就挂 但是颇有收获!
点赞 评论 收藏
分享
3 12 评论
分享
牛客网
牛客企业服务