C++中关于如何使用自己编写的头文件问题!有代码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++中关于如何使用自己编写的头文件问题!有代码相关的知识,希望对你有一定的参考价值。
下面是process.h的代码:#include <windows.h>//这是一个用来关闭进程的类
class CProcess
public: HWND m_hTargetWindow;
ULONG m_ProcessID;
HANDLE m_hOpenTargetWindow; void EndProcess(LPCTSTR str)
m_hTargetWindow=::FindWindow(NULL,str);
::GetWindowThreadProcessId(m_hTargetWindow,&m_ProcessID);
m_hOpenTargetWindow=::OpenProcess(PROCESS_TERMINATE,NULL,m_ProcessID);
::TerminateProcess(m_hOpenTargetWindow,4);
;
下面是shut.CPP代码:#include <windows.h>
#include <process.h>//包含了process.h void main() //调用process.h里定义的类的成员函数
CProcess pro;pro.EndProcess("QQ2011"); 编译报错:
CProcess' : undeclared identifier
为什么说我没有定义呢?
这个不要适用尖括号,要适用双引号
因为这个文件不是系统的文件,而是你自己写的文件,适用 双引号包含 参考技术A 头文件改个名字 ,比如myprocess.h
源文件里#include"myprocess.h"
C++中关于属性向量的查询
【中文标题】C++中关于属性向量的查询【英文标题】:Query about Properties Vectors in C++ 【发布时间】:2011-10-02 08:40:49 【问题描述】:我是一个初学者,刚刚接触到 C++ 中向量的概念。我有几个问题 1. C++中有二维向量的概念吗?如果是,那么我如何声明对应于二维矩阵 a[n][m]?这里,n 和 m 是变量。 2. 向量如何作为参数传递给函数?默认情况下,它们是按引用传递还是按值传递? 3. C++ 中向量相对于数组有什么性能优势?
【问题讨论】:
【参考方案1】:1 - 本身并没有真正的维度概念。但是您可以创建“嵌套”类型。例如:
std::vector <int> intVec;
std::vector < std::vector <int> > doubleIntVec;
在这里,intVec
可以与一维向量进行比较,doubleIntVec
可以与二维向量进行比较,等等。类型不必相同,例如可以std::vector < std::vector <char> > doubleIntVec
,这就是为什么“维度”在这里不是正确的术语。
2 - 与任何其他类型一样,向量没有特定的处理方式。
3 - 是的,例如,如果您需要调整它们的大小,但您可以实现数组以类似的行为。除此之外的好处是标准化、内置的内存管理、附加方法以及可以在向量上运行的各种 STL 算法(作为标准容器)。
【讨论】:
【参考方案2】:C++ 中没有二维向量,要创建矩阵,可以使用向量的向量。
using namespace std;
int m, n;
// ...
vector<vector<int> > v(n);
for (int y = 0; y < n; y++)
v[n].resize(m);
// ...
不过,计算库不会以这种方式实现它们。
要通过引用函数来传递向量,请使用: 无效函数(向量 & v); 省略 & 将导致在函数调用期间复制向量。
向量具有与 C 数组相同的性能,但更实用。 无需手动管理内存,向量大小始终可访问。 您还可以自动复制并保证值的连续性(原始数据可以通过 vector::data() 访问
【讨论】:
难道没有更好的方法来声明大小为 m*n 的向量吗?? 一个大小为 m*n 的向量就是vector<T> v(m*n)
,在这种情况下,您需要使用 m*y+x
计算 (x,y) 单元格偏移量,而嵌套向量允许使用v[y][x] 语法...【参考方案3】:
C++ 中的向量只是一个序列容器。所以,可以用它来保存一个二维数组。
-
使用
std::vector <std::vector<int>>
这取决于目的。
性能不佳,但与数组不同,std::vector 是可增长的。
【讨论】:
以上是关于C++中关于如何使用自己编写的头文件问题!有代码的主要内容,如果未能解决你的问题,请参考以下文章