当前位置: 首页 > wzjs >正文

绍兴网站建设价格互联网哪个行业前景好

绍兴网站建设价格,互联网哪个行业前景好,wordpress 改手机版,广州冼村小学&#x1f47b; 概念 泛型编程 —— 以一种独立于任何特定类型的方式编写代码&#xff0c;如向量有 vector <int> 或 vector <string>模板 —— 泛型编程的基础&#xff0c;是创建泛型类或函数的蓝图或公式 &#x1f47b; 函数模板 &#x1f47e;语法格式 使用 …

👻 概念

  • 泛型编程 —— 以一种独立于任何特定类型的方式编写代码,如向量有 vector <int>vector <string>
  • 模板 —— 泛型编程的基础,是创建泛型类或函数的蓝图或公式

👻 函数模板

👾语法格式

使用 关键字 template 声明模板

template <typename T> return_type function_name(parameter list) {// 函数主体
}
  • template <typename T> —— 声明模板参数
  • return_type —— 返回类型
  • function_name —— 名称
  • parameter list —— 函数参数列表

👾示例代码

template <typename T> inline T const& Max (T const& a, T const& b) {return a < b ? b:a;
}...int i = 5, j = 1;
cout << "Max(i, j) = " << Max(i, j) << endl;			// Max(i, j) = 5double f1 = 5.5, f2 = 1.5;
cout << "Max(f1, f2) = " << Max(f1, f2) << endl;		// Max(f1, f2) = 5.5string s1 = "Hello", s2 = "World";
cout << "Max(s1, s2) = " << Max(s1, s2) << endl;		// Max(s1, s2) = World
template <typename T> inline T const& Max (T const& a, T const& b) { return a < b ? b:a; }
  • inline —— 建议编译器函数内联展开,减少调用开销(函数主体很短)
  • & —— 使用引用避免复制对象,提高效率
  • const —— 保证参数不会被修改

👻 类模板

👾语法格式

template <class T> class class_name {// 类主体
}
template <class T> return_type class_name<T>::function_name(parameter list) {// 类成员函数主体
}
  • template <class T> —— 声明模板参数
  • class_name —— 类名

👾示例代码

template<class T> class Stack {private:vector<T> elems;public:bool empty() const;void push(T const&);void pop();T top() const;
};/* 为空返回真 */
template<class T> bool Stack<T>::empty() const { return elems.empty(); }/* 入栈 */
template<class T> void Stack<T>::push(T const& elem) { elems.push_back(elem); } // 追加传入元素的副本/* 出栈 */
template<class T> void Stack<T>::pop() {if(elems.empty()) throw out_of_range("Stack<>::pop(): empty stack");elems.pop_back(); // 删除最后一个元素
}/* 返回栈顶元素 */
template<class T> T Stack<T>::top() const {if(elems.empty()) throw out_of_range("Stack<>::top(): empty stack");return elems.back(); // 返回最后一个元素的副本
}...try {Stack<int> intStack; intStack.push(1);cout << intStack.top() <<endl;	// 输出 1intStack.pop();intStack.pop();
} catch (exception const& ex) {cerr << "Exception: " << ex.what() << endl;	// 输出 Exception: Stack<>::pop(): empty stackreturn -1;
}

在类成员函数内部声明时,通常不需要指定参数名 elem,即直接使用 push(T const&)

void push(T const&);

在类成员函数外部定义时,需要指定参数名,因为是函数的具体实现部分,即 push(T const& elem)

template <class T> void Stack<T>::push(T const& elem) { ... }

在声明中省略参数名,优点:

  • 简洁性:声明的目的是告诉编译器函数的签名,而不是具体的实现细节。省略可以使声明更加简洁
  • 一致性:参数名在声明中可能没有实际意义,不会被编译器使用。省略可以避免不必要的冗余

在定义模板类的成员函数时,必须指定模板参数 Stack<T>,确保编译器能够正确地实例化模板类,即:

template <class T> void Stack<T>::pop() { ... }  	// 正确的,Stack<T>::pop
template <class T> void Stack::pop() { ... }  	// 错误的,Stack::pop

关键字 const 在函数声明和定义中可以用于修饰成员函数,表示该成员函数不会修改对象的任何成员变量。这种函数称为 常量成员函数const 成员函数

template <class T> T Stack<T>::top() const { ... }
  • const 成员函数

    • 不修改对象的任何成员变量,使得其可以在 const 对象上调用,而不违反 const 的语义
    const Stack<int> intStack;
    intStack.push(4);			 // 编译错误,无法调用 
    int top = intStack.top();	 // 编译正确,只有 const 成员函数可以调用
    
    • 不能调用非 const 成员函数,只能调用其他 const 成员函数
  • const 对象:

    • 只能调用对象的 const 成员函数。
http://www.dtcms.com/wzjs/252177.html

相关文章:

  • 汉中杨海明百度排名优化软件
  • 网站建设与管理教学视频什么是网络销售
  • 如何建立自己的云服务器seo外链优化方法
  • 怎么在微信里创建公众号优化怎么做
  • 电子商务网站软件平台网络营销推广公司有哪些
  • 真人视频发牌网站开发关键词网站推广
  • wordpress主题生成工具视频seo优化教程
  • mac用什么软件做网站广州外贸推广
  • wordpress 多域名多站点itme收录优美图片官网
  • 美国一个分享怎么做的网站叫什么权重查询站长工具
  • wordpress 发帖验证码seo技术教学视频
  • 做界面网站用什么语言优化大师免费下载
  • 用书籍上的文章做网站更新网站提交收录
  • 平面设计师岗位职责和任职要求seo优化是做什么的
  • html5快速建站今日重大新闻头条财经
  • 做原油的网站苏州网络推广服务
  • 外贸b2c网站建设公司百度权重排名
  • 做黑枸杞的公司网站网站快速收录付费入口
  • 织梦网站程序下载平台推广方式有哪些
  • 网站后台上传案例能同步到博客吗热搜关键词
  • 潍坊建设网站公司外链服务
  • 外贸网站自我建设与优化济南网站制作公司
  • 做好网站建设的重要性百度seo优
  • 网站建设销售员百度的链接
  • wordpress 中文语言设置天津seo培训
  • 企业网站内容建设营销背景包括哪些内容
  • 三只松鼠网站怎样做seo软件推广
  • 帮别人做诈骗网站吗百度在全国有哪些代理商
  • 养殖网站模版常见的网络推广方法有哪些
  • 怎么做网站黑链免费培训seo网站