ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C++学习笔记(3)

2022-06-19 18:01:34  阅读:80  来源: 互联网

标签:源文件 头文件 name int age 笔记 学习 C++ 函数


 

 

 

 

 

 

 

 

 

 

 

普通传参,不会改变原值;

引用传参或者指针传参,都会改变原值;

 class Teacher
{
	
public:
	int age;
	string name;
	Teacher(int age,string name)
	{
		this->age = age;
		this->name = name;
	}
	Teacher()
	{
		age = 0;
		name = "";
	}

};

 
 void showTeacher1(Teacher t)
 {
	 t.age = 30;
	 t.name = "Tom1";
	 cout << "普通传参	age= " << t.age <<"		name= "<<t.name<< endl;
 }
 void showTeacher2(Teacher& t)
 {
	 t.age = 40;
	 t.name = "Tom2";
	 cout << "引用传参	age= " << t.age << "		name= " << t.name << endl;
 }
 void showTeacher3(Teacher* t)
 {
	 t->age = 50;
	 t->name = "Tom3";
	 cout << "指针传参	age= " << t->age << "		name= " << t->name << endl;
 }
 void tt4()
 {
	 Teacher t = Teacher(20,"Jack");

	 showTeacher1(t);
	 cout << "初始数值	age= " << t.age << "		name= " << t.name << endl;
	 showTeacher2(t);
	 cout << "初始数值	age= " << t.age << "		name= " << t.name << endl;
	 showTeacher3(&t);
	 cout << "初始数值	age= " << t.age << "		name= " << t.name << endl;
 }

void tt3()
{
	int a = 10, b = 20;
	(a < b ? a : b) = 30;
	cout << "a=" << a << "	b=" << b << endl;
}
//a=30    b=20

1)C语言返回变量的值 C++语言是返回变量本身

C语言中的三目运算符返回的是变量值,不能作为左值使用

C++中的三目运算符可直接返回变量本身,因此可以出现在程序的任何地

2)注意:三目运算符可能返回的值中如果有一个是常量值,则不能作为左值

使用

(a < b ? 1 : b )= 30;

 

1)当使用<iostream.h>时,相当于在c中调用库函数,使用的是全局命名空间,也就是早期的c++实现;

2)当使用<iostream>的时候,该头文件没有定义全局命名空间,必须使用namespace std;这样才能正确使用cout。

1.指针常量:int * const p=&a;常指针

指针的指向不可以改,指向的值可以改

2.常量指针:const int *p=&a;

指针的指向可以更改,指向的值不可以更改

3.同时不可修改:const int * const p=&a;

特别地,当我们想指针的指向和指向的值都不可以修改时,可以结合上面两个,写两个const

void tt1()
{
	const int a = 10;
	int* p = (int*)&a;
	cout << "a=" << a << "\n";
	*p = 5;
	cout << "a=" << a << "\n";
}
//a=10
//a = 10
void tt2()
{
	int a = 10;
	int& b = a;
	int* p = &b;
	*p = 11;
	cout << "a=" << a << "	b=" << b << endl;
	b = 12;
	cout << "a=" << a << "	b=" << b << endl;
}
//a=11    b=11
//a = 12    b = 12

STL六大组件standard template library:

  • 容器:存放数据;
  • 算法:操作数据;
  • 迭代器:算法通过迭代器操作容器数据;
  • 仿函数:为算法提供更多的策略;
  • 适配器:为算法提供更多参数的接口;
  • 空间适配器:为算法和容器动态分配、管理空间;

头文件标准格式:

头文件的作用:方便函数的调用;可以一次性包含很多函数;

不用头文件,每次调用一个函数,就要写一个函数声明,造成代码繁琐;

头文件还可以隐藏代码的实现部分,只提供函数接口,达到了保密的作用;

头文件:写函数的声明;

源文件:写函数的实现;

 

避免相互交替递归的包含,可能导致包含死循环,从而编译出错(包含深度1024);

  • 重复include是否会导致重复编译?重复include会导致报错“重定义”;
  • 为了避免重复编译,可以使用条件编译或者单词编译的预编译指令;
  • #ifndef #def #endif 或者#pragma once

include的本质就是拼接;

  • 头文件是可有可无的东西,源文件也是可有可无的东西;
  • 头文件可以代替源文件,源文件也可以代替头文件;二者没有本质区别;
  • 可以只有源文件而没有头文件;被调函数可以直接将实现写在源文件中;
  • 可以只有头文件而没有源文件;被调函数可以直接将实现写在头文件中;
  • 如果在包含某个文件之前,包含了这个文件的依赖文件,则该文件中可以不再包含其依赖文件;

 

创建头文件的四个步骤:

1 创建一个.h的头文件;

2 创建 一个.cpp的源文件;

3 头文件里面,写函数的声明;

4源文件里面写函数的实现;

标签:源文件,头文件,name,int,age,笔记,学习,C++,函数
来源: https://www.cnblogs.com/zhangdezhang/p/16388402.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有