C++的学习之路<期末考试版>

简单示例:

#include <iostream>
using namespace std;
 
// main() 是程序开始执行的地方
 
int main()
{
   cout << "Hello World"; // 输出 Hello World
   return 0;
}

还记得C语言使用的是 printf

对比一下:

C++ 语言定义了一些头文件,这些头文件包含了程序中必需的或有用的信息。上面这段程序中,包含了头文件 <iostream>。
	下一行 using namespace std; 告诉编译器使用 std 命名空间。命名空间是 C++ 中一个相对新的概念。
	下一行 // main() 是程序开始执行的地方 是一个单行注释。单行注释以 // 开头,在行末结束。
	下一行 int main() 是主函数,程序从这里开始执行。
	下一行 cout << "Hello World"; 会在屏幕上显示消息 "Hello World"。
	下一行 return 0; 终止 main( )函数,并向调用进程返回值 0。

在这里插入图片描述
c++有常变量的概念:

const int a = 5; //a的值只能是5

在这里插入图片描述
c++函数的使用:

#include <iostream>
using namespace std;
 
// 函数声明
int max(int num1, int num2);
 
int main ()
{
   // 局部变量声明
   int a = 100;
   int b = 200;
   int ret;
 
   // 调用函数来获取最大值
   ret = max(a, b);
 
   cout << "Max value is : " << ret << endl;
 
   return 0;
}
 
// 函数返回两个数中较大的那个数
int max(int num1, int num2) 
{
   // 局部变量声明
   int result;
 
   if (num1 > num2)
      result = num1;
   else
      result = num2;
 
   return result; 
}
//c++新增加的东西
int i;
float f;
cin >> i;
cout << f;
------------
scanf("%d", &i);
printf("%f", f);
----------------
连续读入
cin >> a >> b >> c;

各个指针的区别:

const int constantValue = 10;
int nonConstantValue = 20;

const int* ptrToConstant = &constantValue; // 指向常量的指针
ptrToConstant = &nonConstantValue; // 合法

*ptrToConstant = 30; // 非法,不能修改指向的常量值
nt value = 10;
int* const constantPtr = &value; // 常指针
*constantPtr = 20; // 合法,可以修改指针所指向的值

int anotherValue = 30;
constantPtr = &anotherValue; // 非法,无法修改指针的指向
const int constantValue = 10;
int nonConstantValue = 20;

const int* const constantPtrToConstant = &constantValue; // 指向常量的常指针
*constantPtrToConstant = 30; // 非法,不能修改指向的常量值
constantPtrToConstant = &nonConstantValue; // 非法,不能修改指针的指向
内联函数:

inline关键词引用,是为了降低系统的开销,提高系统的运行速度:
说明:

内联函数在第一次被调用之前必须进行完整的定义,否则编译器将无法知道应该插入什么代码
在内联函数体内一般不能含有复杂的控制语句,如for语句和switch语句等
使用内联函数是一种空间换时间的措施,若内联函数较长,较复杂且调用较为频繁时不建议使用

实例:

#include <iostream>

// 内联函数声明
inline int Add(int a, int b) {
    return a + b;
}

int main() {
    int num1 = 5;
    int num2 = 7;

    // 调用内联函数
    int sum = Add(num1, num2);

    std::cout << "Sum: " << sum << std::endl;

    return 0;
}
函数的默认值的问题:
void init(int x = 5, int y = 10);
init (100, 19);   // 100 , 19
init(25);         // 25, 10
init();           // 5, 10

在函数原型中,所有取默认值的参数都必须出现在不取默认值的参数的右边。

int fun(int a, int b, int c = 666);

函数重载:
#include <iostream>
using namespace std;

int add(int x, int y)
{
	return x + y;
}

double add(double x, double y)
{
	return x + y;
}

int add(int x, int y, int z)
{
	return x + y + z;
}

int main() 
{
	int a = 3, b = 5, c = 7;
	double x = 10.334, y = 8.9003;
	cout << add(a, b) << endl;
	cout << add(x, y) << endl;
	cout << add(a, b, c) << endl;
	return 0;
}
//同一函数名不同的形参使用
作用域标识符:

通常情况下,如果有两个同名变量,一个是全局的,另一个是局部的,那么局部变量在其作用域内具有较高的优先权,它将屏蔽全局变量。

如果希望在局部变量的作用域内使用同名的全局变量,可以在该变量前加上“::”,此时::value代表全局变量value,“::”称为作用域标识符。

#include <iostream>
using namespace std;

int value;   //定义全局变量value

int main() 
{
	int value;  //定义局部变量value
	value = 100;
	::value = 1000;
	cout << "local value : " << value << endl;
	cout << "global value : " << ::value << endl;
	return 0;
}

强制类型转换:
int i = 10;
double x = (double)i;int i = 10;
double x = double(i);

new/delete
指针变量名 = new 类型
    int *p;
    p = new int;
delete 指针变量名
    delete p;

使用运算符new可以为数组动态分配内存空间,这时需要在类型后面加上数组大小。

指针变量名 = new 类型名[下标表达式];
int *p = new int[10];

引用:
类型 &引用名 = 已定义的变量名

#include <iostream>
using namespace std;
int main() 
{
	int i = 10;
	int &j = i;
	cout << "i = " << i << " j = " << j << endl;
	cout << "i的地址为 " << &i << endl;
	cout << "j的地址为 " << &j << endl;
	return 0;
}
//i j 的地址一样

引用作为函数参数:

#include <iostream>
using namespace std;

void swap(int &a, int &b)
{
	int t = a;
	a = b;
	b = t;
}

int a[] = {1, 3, 5, 7, 9};

int& index(int i)
{
	return a[i];
}

int main() 
{
	int a = 5, b = 10;
	//交换数字a和b
	swap(a, b);
	cout << "a = " << a << " b = " << b << endl;
	cout << index(2) << endl;   //等价于输出元素a[2]的值
	index(2) = 100;             //等价于将a[2]的值赋为100;
	cout << index(2) << endl;
	
	return 0;
}

不允许建立void类型的引用
不能建立引用的数组
不能建立引用的引用。不能建立指向引用的指针。引用本身不是一种数据类型,所以没有引用的引用,也没有引用的指针。
可以将引用的地址赋值给一个指针,此时指针指向的是原来的变量。
可以用const对引用加以限定,不允许改变该引用的值,但是它不阻止引用所代表的变量的值。
类:
class 类名{
    public:
        公有数据成员;
        公有成员函数;
    protected:
        保护数据成员;
        保护成员函数;
    private:
        私有数据成员;
        私有成员函数;
};

类中成员函数的定义:

class Score{
public:
	void setScore(int m, int f);
	void showScore();
private:
	int mid_exam;
	int fin_exam;
};

void Score::setScore(int m, int f) 
{
	mid_exam = m;
	fin_exam = f;
}

void Score::showScore()
{
	cout << "期中成绩: " << mid_exam << endl;
	cout << "期末成绩:" << fin_exam << endl;
}

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值