vb.net 如何在一个项目中创建类,并且使用他?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vb.net 如何在一个项目中创建类,并且使用他?相关的知识,希望对你有一定的参考价值。
看vb.net入门教程第三版,创建了一个类Car并生成文件Car.vb,然后就在module.vb中就使用了,这个module.vb咋来的?我在项目上添加模块的方式生成个module.vb,直接引用car运行不成功啊顺便请问,谁有系统点的vb.net教程啊,我看了vb.net入门教程第三版,有些东西直接就跳出来了(就象问题里的module.vb,都不知道哪来的),是不是因为以前没用过VB的原因?
参考技术A 在任意form类或模块中都可以创建类,跟建立函数和过程一样。示例:
public class form1
‘创建一个属于form的子类,名称为【类名】。
public class 类名
’定义类成员text
public text as string
end class
‘定义一个【类名】类的公共变量。
dim 类名1 as 类名
’定义一个过程,使用【类名】类的text成员
public sub 过程
‘实例化【类名1】
类名1=new 类名
类名1.text=“赋值”
’定义一个【新类】类的私用变量,并实例化。
dim 新类1 as new 新类
新类1.name=“一个字符串”
新类1.age=12
end sub
end class
‘’‘创建一个与form同级的类,名称为【新类】
public class 新类
public sub new()
end sub
public name as string
public age as integer
end class
在模块中使用:
public class module1
dim a as new form1.类名
end module追问
哦,我可能知道我错在哪了,谢谢你的回答!
本回答被提问者采纳如何在 C++ 中创建类对象的向量?
【中文标题】如何在 C++ 中创建类对象的向量?【英文标题】:How to create a vector of class objects in C++? 【发布时间】:2014-02-20 20:50:19 【问题描述】:我正在尝试使用 C++ 中的向量创建一个简单的堆栈。
代码如下:
#include <vector>
class Site
public:
int i; // site position i (x-axis)
int s; // site state
vector<Site> neighbors;
Site(void);
Site(int ii, int ss);
void AddNeighbor(Site &site);
;
Site::Site()
i = -1;
s = -1;
vector<Site> neighbors;
Site::Site(int ii, int ss)
i = ii;
s = ss;
void Site::AddNeighbor(Site &site)
neighbors.push_back(site);
void testStack()
int tot = 600;
vector<Site> myStack();
int i = 0;
while (i < tot)
Site site(i, 1);
myStack.push_back(site);
i++;
i = 0;
while (i < tot)
Site *site = myStack.back();
myStack.pop_back();
cout << site->i << site->s << endl;
i++;
编译器错误:
ising_wolff.cpp:在函数“void testStack()”中: ising_wolff.cpp:373:17:错误:请求成员“push_back” ‘myStack’,它是非类类型‘std::vector()’ myStack.push_back(站点); ^ ising_wolff.cpp:380:30: 错误:请求‘myStack’中的成员‘back’,它是非类类型‘std::vector()’ 站点 *site = myStack.back(); ^ ising_wolff.cpp:381:17: 错误:在‘myStack’中请求成员‘pop_back’,它是非类类型 'std::vector()' myStack.pop_back();
这些错误是什么意思?
以下是我看过的一些网站:
1) Creating objects while adding them into vectors
2) push_back causing errors in C
3)how to create vectors of class object
【问题讨论】:
我在审核前提出了两个问题... 【参考方案1】:如何在 C++ 中创建类对象向量?
从简单的开始,这样你就可以掌握它。
首先,创建一个原始整数向量:
#include <vector>
#include <iostream>
using namespace std;
int main()
vector<int> sites(5);
sites.push_back(5);
for(int x = 0; x < sites.size(); x++)
cout << sites[x];
cout << endl;
return 0;
编译:
g++ -o test test.cpp
运行它:
./test
000005
以与上述类似的方式创建类对象的向量:
#include <iostream>
#include <vector>
using namespace std;
class Site
public:
int i;
;
int main()
vector<Site> listofsites;
Site *s1 = new Site;
s1->i = 7;
Site *s2 = new Site;
s2->i = 9;
listofsites.push_back(*s1);
listofsites.push_back(*s2);
vector<Site>::iterator it;
for (it = listofsites.begin(); it != listofsites.end(); ++it)
cout << it->i;
return 0;
应该打印的内容:
79
【讨论】:
【参考方案2】:vector<Site> myStack();
这实际上是一个函数声明。该函数称为myStack
,它返回一个vector<Site>
。你真正想要的是:
vector<Site> myStack;
目前neighbours
的类型将存储对象的副本,而不是引用。如果你真的想存储引用,我建议使用std::reference_wrapper
(而不是使用指针):
vector<reference_wrapper<Site>> neighbors;
【讨论】:
如果我像你说的那样声明邻居,Site
类中的方法AddNeighbors
将保持正确吗?谢谢你的回答:)
当我使用std::reference_wrapper
时,就像你建议的那样,编译器给了我错误:In member function ‘void Site::AddNeighbor(Site&)’: ising_wolff.cpp:38:29: error: no matching function for call to ‘std::vector<std::reference_wrapper<Site> >::push_back(Site&)’
in neighbors.push_back(site);
。然后打印出一大堆“候选人”来代替……名单长得看不下去了
@Girardi 哦,对不起,我误解了你之前的问题。你需要做neighbors.push_back(std::ref(site))
。
它说ref
不是std
的成员
对不起,我没有注意到您引用的链接中的header
=)【参考方案3】:
vector<Site> myStack();
这是错误的。丢掉()
。
你声明的是一个函数,而不是一个向量。
只写:
vector<Site> myStack;
【讨论】:
【参考方案4】:你可以使用:
vector<Site> myStack;
myStack.resize(100); //will create 100 <Site> objects
【讨论】:
以上是关于vb.net 如何在一个项目中创建类,并且使用他?的主要内容,如果未能解决你的问题,请参考以下文章