【C++】C++类和对象—(中)

前言:在上一篇类和对象(上)的文章中我们已经带领大家认识了类的概念,定义以及对类和对象的一些基本操作,接下来我们要逐步进入到类和对象(中)的学习。我们将逐步的介绍类和对象的核心——类和对象的六个默认成员函数。(注意:这六个默认成员函数是类和对象的核心,学好了它我们才能更好的去理解类和对象!)

一,什么是成员函数?

要学习类和对象中的六个成员函数,那我们就要先了解什么是成员函数?
  • 成员函数就是在类里面定义的函数,一般定义在类里面的都称为成员如果是变量就称为成员变量,如果是函数就称为成员函数。

代码语言:javascript

AI代码解释

#include<iostream> using namespace std; class A { public: //成员函数 void func() { cout<<"void func()"<<endl; } private: //成员变量 int _a; }

二,默认成员函数的种类

C++的默认成员函数就是说我们没有显式的写该函数编译器会自动生成该函数就称为默认成员函数。C++有六个默认的成员函数也就是说这六个成员函数如果我们自己不写编译器就会自动生成。至于为什么要搞这些默认成员函数待学完这些默认成员函数你自然就会明白!

六个默认成员函数如下:

在这里插入图片描述

在这里插入图片描述

六个默认成员函数有三种,分别是执行初始化,拷贝,以及重载功能的函数。
  1. 执行初始化:构造函数,析构函数
  2. 执行拷贝:拷贝构造,赋值重载
  3. 取地址重载:两个重载函数 注意:这六个成员函数中比较重要的是前4个,后两个可以作为了解!

下面我们依次介绍这几个函数。

三,六个成员函数

3.1构造函数
构造函数的概念:构造函数是一种特殊的成员函数,用于在创建对象时初始化对象的状态。通常与类名相同,无返回类型,支持重载。
3.2构造函数的种类和使用
在上面的构造函数中我们看到了几种构造函数的类型分别是:

  1. 默认构造函数:无参数,如果我们没有显式的写出来,编译器就会自动生成并进行默认初始化。
  2. 带参的构造函数:带参的构造函数又分为有缺省值和没有缺省值。注意全缺省的构造函数不能与无参的构造函数同时存在!因为这两个函数在调用时会引发冲突!
  3. 拷贝构造函数,参数是类名这个我们后面介绍。

代码语言:javascript

AI代码解释

class Date { public: //默认构造函数与类名相同,无返回值,支持重载 //不带参数 Date() { _year = 1; _month = 1; _day = 1; } //Date(int year=1, int month=1, int day=1) 全缺省的构造函数 //一般的构造函数 Date(int year, int month, int day) { _year = year; _month = month; _day = day; } void Print() { cout << this->_year << "/" << this->_month << "/" << _day << endl; } private: int _year; int _month; int _day; };

在这里插入图片描述

在这里插入图片描述

什么都不写自动调用编译生成的默认构造,对成员变量进行默认初始化(值是随机值).

通过上面的代码我们能了解到构造函数的主要特点:

自动调用:不显式写构造函数的情况下,对象创建时由编译器隐式调用,无需手动触发。 无返回值:即使语法上不写 void,也不实际返回任何值。 支持重载:一个类可以定义多个参数列表不同的构造函数。

注意:对于自定义类型成员变量,要求调用这个成员变量的默认构造函数初始化。如果这个成员变量,没有默认构造函数,那么就会报错!这就要使用初始化列表了,初始化列表后面介绍。

Read more

MCP客户端与服务端初使用——让deepseek调用查询天气的mcp来查询天气

MCP客户端与服务端初使用——让deepseek调用查询天气的mcp来查询天气

本系列主要通过调用天气的mcp server查询天气这个例子来学习什么是mcp,以及怎么设计mcp。话不多说,我们开始吧。主要参考的是B站的老哥做的一个教程,我把链接放到这里,大家如果有什么不懂的也可以去看一下。 https://www.bilibili.com/video/BV1NLXCYTEbj?spm_id_from=333.788.videopod.episodes&vd_source=32148098d54c83926572ec0bab6a3b1d https://blog.ZEEKLOG.net/fufan_LLM/article/details/146377471 最终的效果:让deepseek-v3使用天气查询的工具来查询指定地方的天气情况 技术介绍 MCP,即Model Context Protocol(模型上下文协议),是由Claude的母公司Anthropic在2024年底推出的一项创新技术协议。在它刚问世时,并未引起太多关注,反响较为平淡。然而,随着今年智能体Agent领域的迅猛发展,MCP逐渐进入大众视野并受到广泛关注。今年2月,

By Ne0inhk
可以在命令行通过大模型使用上下文协议(MCP)与外部工具交互的软件:小巧的MCPHost

可以在命令行通过大模型使用上下文协议(MCP)与外部工具交互的软件:小巧的MCPHost

小巧的MCPHost MCPHost 可以在命令行下使用,使大型语言模型(LLM)能够通过模型上下文协议(MCP)与外部工具进行交互。目前支持Claude 3.5 Sonnet和Ollama等。本次实践使用自己架设的Deepseek v3模型,跑通了Time MCP服务。  官网:GitHub - mark3labs/mcphost: A CLI host application that enables Large Language Models (LLMs) to interact with external tools through the Model Context Protocol (MCP). 下载安装 使用非常方便,直接下载解压即可使用。官网提供Windows、Linux和MacOS三个系统的压缩包: https://github.com/

By Ne0inhk
实战篇:Python开发monogod数据库mcp server看完你就会了

实战篇:Python开发monogod数据库mcp server看完你就会了

原创不易,请关注公众号:【爬虫与大模型开发】,大模型的应用开发之路,整理了大模型在现在的企业级应用的实操及大家需要注意的一些AI开发的知识点!持续输出爬虫与大模型的相关文章。 前言 目前mcp协议是给deepseek大模型插上工具链的翅膀,让大模型不仅拥有超高的推理和文本生成能力,还能具备执行大脑意识的工具能力! 如何开发一个mcp? mcp是一种协议,指的是模型上下文协议 (Model Context Protocol)。 官方结成的mcp https://github.com/modelcontextprotocol/python-sdk mcp库 pip install mcp from mcp.server.fastmcp import FastMCP 我们先来做一个简单的案例 from mcp.server.fastmcp import FastMCP import requests mcp = FastMCP("spider") @mcp.tool() def crawl(

By Ne0inhk
【大模型实战篇】基于Claude MCP协议的智能体落地示例

【大模型实战篇】基于Claude MCP协议的智能体落地示例

1. 背景         之前我们在《MCP(Model Context Protocol) 大模型智能体第一个开源标准协议》一文中,介绍了MCP的概念,虽然了解了其概念、架构、解决的问题,但还缺少具体的示例,来帮助进一步理解整套MCP框架如何落地。         今天我们基于claude的官方例子--获取天气预报【1】,来理解MCP落地的整条链路。 2. MCP示例         该案例是构建一个简单的MCP天气预报服务器,并将其连接到主机,即Claude for Desktop。从基本设置开始,然后逐步发展到更复杂的使用场景。         大模型虽然能力非常强,但其弊端就是内容是过时的,这里的过时不是说内容很旧,只是表达内容具有非实时性。比如没有获取天气预报和严重天气警报的能力。因此我们将使用MCP来解决这一问题。         构建一个服务器,该服务器提供两个工具:获取警报(get-alerts)和获取预报(get-forecast)。然后,将该服务器连接到MCP主机(在本例中为Claude for Desktop)。         首先我们配置下环

By Ne0inhk