wp建站系统,做响应式网站设计图是多大的,怎么查楼盘预售许可证,iis一个文件夹配置多个网站#x1f40c;博主主页#xff1a;#x1f40c;倔强的大蜗牛#x1f40c; #x1f4da;专栏分类#xff1a;C❤️感谢大家点赞#x1f44d;收藏⭐评论✍️ 一、面向过程和面向对象初步认识 C语言是面向过程的#xff0c;关注的是过程#xff0c;分析出求解问题的步… 博主主页倔强的大蜗牛 专栏分类C❤️感谢大家点赞收藏⭐评论✍️ 一、面向过程和面向对象初步认识 C语言是面向过程的关注的是过程分析出求解问题的步骤通过函数调用逐步解决问题。 C是基于面向对象的关注的是对象将一件事情拆分成不同的对象靠对象之间的交互完成。 面向对象的概念
面向对象Object-Oriented ProgrammingOOP是一种编程思想它以对象为基础来设计和构建软件系统。在面向对象编程中对象是核心概念它代表现实世界中的实体或概念并具有属性(数据)和方法(操作数据的函数)。
面向对象编程的主要特点包括封装、继承、多态和抽象。封装隐藏了对象的内部实现只提供有限的接口与外界交互继承允许一个类继承另一个类的特性实现代码复用多态让不同类的对象能够以统一的方式被处理抽象则是对现实世界的简化以便于理解和建模。
面向对象编程的优势在于提高代码的可重用性、可维护性和可扩展性使软件系统更加符合现实世界的需求和逻辑。
二、类的引入 C语言结构体中只能定义变量在C中结构体内不仅可以定义变量也可以定义函数。 比如 在数据结构中用C语言方式实现的栈结构体中只能定义变量现在以C方式实现 会发现struct中也可以定义函数。 typedef int DataType;
struct Stack
{void Init(size_t capacity){_array (DataType*)malloc(sizeof(DataType) * capacity);if (nullptr _array){perror(malloc申请空间失败);return;}_capacity capacity;_size 0;}void Push(const DataType data){// 扩容_array[_size] data;_size;}DataType Top(){
return _array[_size - 1];}void Destroy(){if (_array){free(_array);_array nullptr;_capacity 0;_size 0;}}DataType* _array;size_t _capacity;size_t _size;
};
int main()
{Stack s;s.Init(10);s.Push(1);s.Push(2);s.Push(3);cout s.Top() endl;s.Destroy();return 0;
} 上面结构体的定义在C中更喜欢用class来代替。 三、类的定义 class为定义类的关键字ClassName为类的名字{}中为类的主体注意类定义结束时后面分 号不能省略。 类体中内容称为类的成员类中的变量称为类的属性或成员变量; 类中的函数称为类的方法或者 成员函数。 类的两种定义方式 1. 声明和定义全部放在类体中需注意成员函数如果在类中定义编译器可能会将其当成内 联函数处理。 #includeiostreamclass MyClass {
public:// 成员函数声明和定义void printHello() {std::cout Hello, World! std::endl;}int add(int a, int b) {return a b;}
};int main() {MyClass obj;obj.printHello(); // 输出 Hello, World!int sum obj.add(1, 2); // sum 3std::cout Sum: sum std::endl;return 0;
} 在这个示例中MyClass 类包含两个成员函数printHello() 和 add()。这两个函数的声明和定义都放在类体内。当编译器看到这些成员函数的定义时它们可能会被视为内联函数从而提高程序的性能。然而这也可能导致代码膨胀因此在实际编程中需要权衡利弊。 2. 类声明放在.h文件中成员函数定义放在.cpp文件中注意成员函数名前需要加类名:: myclass.h 文件
#ifndef MYCLASS_H
#define MYCLASS_Hclass MyClass {
public:// 成员函数声明void printHello();int add(int a, int b);
};#endif // MYCLASS_H
myclass.cpp 文件
#include myclass.h
#includeiostream// 成员函数定义
void MyClass::printHello() {std::cout Hello, World! std::endl;
}int MyClass::add(int a, int b) {return a b;
}
main.cpp 文件
#include myclass.hint main() {MyClass obj;obj.printHello(); // 输出 Hello, World!int sum obj.add(1, 2); // sum 3std::cout Sum: sum std::endl;return 0;
} 在这个示例中MyClass 类的声明放在了 myclass.h 文件中而成员函数的定义放在了myclass.cpp 文件中。这样可以避免头文件中的重复包含同时也有助于代码的模块化和组织。在 main.cpp 文件中我们只需要包含 myclass.h 头文件即可使用 MyClass 类的功能。 四、类的访问限定符及封装 访问限定符 C实现封装的方式用类将对象的属性与方法结合在一块让对象更加完善通过访问权限选 择性的将其接口提供给外部的用户使用。 【访问限定符说明】
public修饰的成员在类外可以直接被访问 protected和private修饰的成员在类外不能直接被访问(此处protected和private是类似的) 访问权限作用域从该访问限定符出现的位置开始直到下一个访问限定符出现时为止 如果后面没有访问限定符作用域就到 } 即类结束class的默认访问权限为privatestruct为public(因为struct要兼容C)
注意访问限定符只在编译时有用当数据映射到内存后没有任何访问限定符上的区别 问题C中struct和class的区别是什么 C需要兼容C语言所以C中struct可以当成结构体使用。另外C中struct还可以用来 定义类。和class定义类是一样的区别是struct定义的类默认访问权限是publicclass定义的 类默认访问权限是private。 封装 面向对象的三大特性封装、继承、多态。 封装将数据和操作数据的方法进行有机结合隐藏对象的属性和实现细节仅对外公开接口来 和对象进行交互。 封装本质上是一种管理让用户更方便使用类。 在C语言中实现封装可以通过类将数据以及操作数据的方法进行有机结合通过访问权限来 隐藏对象内部实现细节控制那些方法可以在类外部直接被使用。 ❤️结语 本次精彩内容已圆满结束希望各位读者在阅读过程中能够收获满满。在此特别感谢各位读者的支持与三连赞。如果文章中存在任何问题或不足之处欢迎在评论区留言大星必定会认真对待并加以改进以便为大家呈现更优质的文章。你们的支持与鼓励将是博主不断前进的最大动力。再次感谢大家的陪伴与支持