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

兰陵住房建设局网站wordpress如何上传到服务器

兰陵住房建设局网站,wordpress如何上传到服务器,网站开发网页加载缓慢查询数据库慢,网店推广方式顾名思义, duplicate symbol是重复符号的意思! 代码是用来做什么的(问题缘由 & 代码结构) 写排序算法, 提出了一个公共的头文件用来写一些工具方法, 比如打印数组内容. 以便于不同文件代码需要打印数组内容的时候,直接引入相关头文件即可, 但是编译时出现了 duplicate sym…

顾名思义, duplicate symbol是重复符号的意思!

代码是用来做什么的(问题缘由 & 代码结构)
写排序算法, 提出了一个公共的头文件用来写一些工具方法, 比如打印数组内容. 以便于不同文件代码需要打印数组内容的时候,直接引入相关头文件即可, 但是编译时出现了 duplicate symbol 报错.
总共涉及四个文件
● InsertSort.h, InsertSort.cpp : 插入排序算法实现部分
● CollectionUtil.h : 数组集合相关工具方法, 如打印数组
● main.cpp : 输入待排序数组,以及调用排序算法
代码如下
CollectionUtil.h : 数组集合相关工具方法, 如打印数组

#ifndef ALGORITHM_COLLECTIONUTIL_H
#define ALGORITHM_COLLECTIONUTIL_H
#include <iostream>
using namespace std;
void printArray(int size, int a[]) {for (int i = 0; i < size; ++i) {cout << a[i] << ",";}cout << endl;
}#endif //ALGORITHM_COLLECTIONUTIL_H

InsertSort.h, InsertSort.cpp : 插入排序算法实现部分
InsertSort.h

#ifndef ALGORITHM_INSERTSORT_H
#define ALGORITHM_INSERTSORT_H
class InsertSort {
public:
//折半插入排序
void halfInsertSort(int size, int a[]);
};#endif //ALGORITHM_INSERTSORT_H

nsertSort.cpp

#include "InsertSort.h"
#include <iostream>
#include "../common/CollectionUtil.h"using namespace std;
/*** 折半插入排序* 新选的比较值, 在与前面排好的有序队列比较的时候, 采取二分思想,找到合适的位置* @param size* @param a*/
void InsertSort::halfInsertSort(int size, int *a) {// ... 排序算法代码省略 ...printArray(size, a);}
}

main.cpp : 输入待排序数组,以及调用排序算法

#include "sort/InsertSort.h"
#include "common/CollectionUtil.h"
using namespace std;
int main() {int a[] = {20, 64, 23, 12, 9, 53, 2,88};InsertSort insertSort;int size = sizeof(a) / sizeof (int);// 折半插入排序insertSort.halfInsertSort(size, a);printArray(size, a);return 0;
}

编译时出现问题,报错如图所示:


将ClollectionUtil.h 写一个专门的cpp实现, 里面含有对printArray 全局函数的定义.即可
如改为:
ClollectionUtil.h

#ifndef ALGORITHM_COLLECTIONUTIL_H
#define ALGORITHM_COLLECTIONUTIL_H
void  printArray(int size, int a[]);
#endif //ALGORITHM_COLLECTIONUTIL_H
CollectionUtil.cpp
#include "CollectionUtil.h"
#include <iostream>
using namespace std;
void printArray(int size, int a[]) {for (int i = 0; i < size; ++i) {cout << a[i] << ",";}cout << endl;
}

原因:
C++中, 多文件编译, 整个横向的跨度上, 对于函数而言, 允许多次声明, 一次定义. 但是不允许多次声明, 多次定义. 代码原来的写法,正是促成了 "多次声明多次定义"的情况, 是不符合其标准的.
我们需要重新审视一下, #include 在预编译的时候到底做了什么, 过往仅仅是一个单独文件的编译, 我们知道就是把被引入的内容代码进行了全拷贝. 但是为什么编译多个文件的时候, 上述代码多个文件引入了相同的头文件, 头文件里明明做好了 #ifndef #define #undef 之类的保护, 就拷贝那么一次, 为什么还是冲突了呢? 原因在于C++编译器,对于文件的编译, 是分开编译的. 虽然说定义一个全局的宏, 是全局可见, 但是编译时由于分开编译, 会导致如图所示:
在这里插入图片描述

根据图示, 预处理的时候, 尽管存在ifndef define等宏定义, 但是最终出来的结果是, 全局存在两处 printArray 函数的定义. 不符合标准. 解决办法就是, 把头文件中内容改为只声明printArray()函数, 而不让其有定义, 定义写在cpp文件中, 这样尽管全局会出现多次声明, 但依然符合标准.
总结及扩展
C++允许多次声明, 一次定义. 定义指的是,写出具体实现逻辑的方法.
C++编译的时候会分开编译.
C++头文件,最好不要带函数的定义。

http://www.yayakq.cn/news/120875/

相关文章:

  • 电子商务网站策划书布局设计有哪些网站可以做全景效果图
  • 网站建设方面书籍免费推广手段
  • 凡科建站怎么收费不同类型网站
  • 旅游营销的网站建设wordpress 前端图片上传
  • asp网站授权码如何做vps上的网站运行太慢
  • 网站开发遇到的难题好的产品设计网站
  • 做城市网站的标语做网站毕设任务书
  • 玉环做网站有哪些网站地址栏
  • 哪个网站做的简历最好小红书怎么推广
  • 南阳做网站seo的seo知识培训
  • 电子商务网站建设文档企业公司有哪些
  • 商城网站建设缺点域名里可以建网站
  • 桐乡 网站建设最全的百度网盘搜索引擎
  • 广州和信建设公司网站做网站卖东西流程
  • 教育平台网站可信网站认证
  • 各网站网络营销产品价格策略南京平面设计师联盟
  • 建站系统破解源码凡科做网站有什么用
  • 二次元网站开发的意义Wordpress 十大
  • 服务器做网站好吉林长春建设工程信息网站
  • 朝阳网站建设 慈云寺深圳乐安居网站谁做的
  • 网站开发的职位要求凉州区住房和城乡建设局网站
  • 模板网站建设 百度wordpress修改文字大小
  • 做视频周边的网站网站建设的作业模板
  • 莆田有哪些网站建设公司奇月网络官方网站
  • 购物手机网站怎么做发不了软文的网站怎么做关键词优化
  • 网站设计咨询网站淄博营销网站建设
  • 佛山市网站公司南宁网站建设 醉懂网络
  • 华为网站建设策划书hao123浏览器下载安装
  • 佛山网站制作好处广州网站建设菲利宾
  • 成都网站建设公司排名艾米艾园wordpress