IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++ 01 -> 正文阅读

[C++知识库]C++ 01

// 一个c++程序

//#include<iostream>
//using namespace std;
//int main()
//{
//?? ?cout << "hello world" << endl;
//?? ?return 0;
//}
// using namespace std; 声明一个命名空间
/*


?命名空间解决了多个模块间命名冲突的问题,例如c++库提供的对象都存放
? 在了std这个标准名字空间中,例如cin,cout,endl
*/
// 第二种使用域限定符::

//#include<iostream>
//int main()
//{
//?? ?std::cout << "hello world" << std::endl;
//?? ?return 0;
//}


// 第三种使用using和域限定符一起

//#include<iostream>
//using std::cout;
//using std::endl;
//int main()
//{
//?? ?cout << "hello world" << endl;
//?? ?return 0;
//}

// 标准库iostream中的cin和cout 起输入输出作用
// 输出操作符: <<
// endl起换行作用 例如: cout<<"hello"<<endl<<"world"<<endl;
// 输入之前定义类型一致的变量来存放数据例如:
// int a, b;
// cin >> a >> b;


?c++ 数据类型: char int float double bool
?与c语言不同的是使用cin 和 cout 时不需要手动控制数据类型
?

//#include<iostream>
//using namespace std;
//int main()
//{
//?? ?bool a = true;
//?? ?bool b = false;
//?? ?cout << a << b;
//?? ?return 0;
//}

// 函数的重载

#include<iostream>
using namespace std;
// 方法1
int add(int a, int b) {
	cout << "方法1" << endl;
	return a + b;
}
// 方法2
double add(double a, double b) {
	cout << "方法二" << endl;
	return a + b;
}
// 方法三
double add(double a, int b) {
	cout << "方法三" << endl;
	return a + b;
}
int main()
{
	cout << add(1,2) << endl;
	return 0;
}

函数模板:

#include<iostream>
using namespace std;
// 定义函数模板
template<class T1,class T2>
T1 add(T1 x, T2 y)
{
	cout << sizeof(T1) << "," << sizeof(T2) << "\t";
	return x + y;
}
int main()
{
	cout << add(10, 20) << endl;
}

/ inline 内联函数, 解决一个函数代码不多却频繁被调用的问题
// 依然使用自定义函数,但是在编译的时候,把函数代码插入到函数调用处,免去函数调用的一系列过程,像普通顺序执行的代码一样

#include<iostream>
using namespace std;
inline int Max(int a, int b) {
	return a > b ? a : b;
}
int main()
{
	cout << Max(1, 2) << endl;
	return 0;
}

内联函数的定义要在调用之前出现,才可以让编译器在编译期间了解上下文,进行代码替换。除此以外,内联函数register变量类似,仅仅是我们提给编译器的一个请求,最终是否真正会实现内联,由编译器根据情况自行选择。


?c++字符串:
? 字符数组?
? string 类类型
? 字符数组: 使用null字符\0 终止的以为字符数组
? 操作字符数组的一些方法:
? strcpy(s1,s2); 复制s2到s1
? strcat(s1,s2); 连接s2到s1的末尾
? strlen(s1); 返回s1的长度
? strcmp(s1,s2); 如果s1和s2相同返回0,大于s2返回正数,小于返回负数
? strchr(s1,ch); 返回一个指针,指向s1中字符ch第一次出现的位置
? strstr(s1,s2);返回一个指针,指向字符串s2第一次出现的位置

?访问权限: public private pritected

?与普通变量一样,对象也是一片连续的内存空间,对象指针存储这个对象的地址
?除了在赋值、访问成员的时候用以外,在传参的时候也建议用指针来传递,因为其传递的为地址,不会进行对象之间的副本赋值,从而减少内存的开销,提高效率

?对象引用就是一个类对象起个别名,本质上也是把这个类对象的地址赋给了这个引用类型,两者指向一块内存空间,不会调用构造函数
?引用类型存的还是地址,传参定义都不会太多内存开销,有指针的优势

?析构函数(destructor):用做对象释放后的清理善后工作
?不能重载,可以是虚函数

// 类
#include<iostream>
using namespace std;
class Student
{
public:
	string name;
	int age;
	int print()
	{
		cout << name << endl;
		return 0;
	}
	int look(); // 类内声明
	// 构造方法
	Student(string name, int age);
	Student();
	//析构函数
	~Student();
};
// 类外定义
int Student::look() {
	return 0;
}
Student::Student(string name, int age) {
	this->name = name;
	this->age = age;
}
Student::~Student() {
	cout << "destructor" << endl;
}
int main()
{
	// 创建对象
	Student liHua;
	liHua.age = 20;
	liHua.name = "lihua";
	liHua.print();
	// 对象指针
	Student* p;
	p = &liHua;
	p->print();
	return 0;
	//对象的引用
	Student& A = liHua;
	A.print();
}

深拷贝与浅拷贝:
?浅拷贝; 把原有对象中的成员依次拷贝给新对象中对应的成员
?但是当成员变量中有指针成员的时候,浅拷贝不会给新的对象的指针成员开辟内存空间,两个指针指向一块堆内存,那么释放这块内存的时候,两个对象调用两次,delete两次就会出现错误
?深拷贝:定义拷贝函数 在实现中开辟内存

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-10-22 20:56:54  更:2022-10-22 20:58:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 6:21:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码