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&lt;Site&gt;。你真正想要的是:

vector<Site> myStack;

目前neighbours 的类型将存储对象的副本,而不是引用。如果你真的想存储引用,我建议使用std::reference_wrapper(而不是使用指针):

vector<reference_wrapper<Site>> neighbors;

【讨论】:

如果我像你说的那样声明邻居,Site 类中的方法AddNeighbors 将保持正确吗?谢谢你的回答:) 当我使用std::reference_wrapper 时,就像你建议的那样,编译器给了我错误:In member function ‘void Site::AddNeighbor(Site&amp;)’: ising_wolff.cpp:38:29: error: no matching function for call to ‘std::vector&lt;std::reference_wrapper&lt;Site&gt; &gt;::push_back(Site&amp;)’ 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 如何在一个项目中创建类,并且使用他?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C++ 中创建类对象的向量?

使用 bash,如何从目录中的所有文件中创建类路径?

在另一个类中创建类实例的问题

在 nib 文件中创建类的实例

如何在 VB.NET 中创建具有隐式实现的接口

python进阶三(面向对象编程基础)3-1 python中创建类属型