假设我在C中有以下代码表示堆栈:
#define MAX 1000
int arr[MAX];
static int counter = 0;
isstackempty()
{
return counter <= 0;
}
void push(int n)
{
if (counter >= MAX) {
printf("Stack is full. Couldn't push %d", n);
return;
}
arr[counter++] = n;
}
int pop(int* n)
{
if(isstackempty() || n == 0) {
printf("Stack is empty\n");
return 0;
}
*n = arr[--counter];
return 1;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码在一个stack.c文件中,函数原型在一个头文件中.
现在,来自C#和OO背景,如果我想要stack在我的应用程序中分离s,在OO语言中我将创建两个实例.但是在C中,你如何处理这种情况?
假设我想stack在我的C代码中使用两个单独的s ...使用上面的代码,我将如何处理它?
我正在学习Objective-C,我并不真正理解实例和对象之间的区别.他们通常使用这两个术语.另外,为什么alloc方法应用于类,init方法应用于对象?
假设我有一个Post模型,我想在保存时运行一个方法
在post.rb我这样做:
:before_save some_method_on_post
def some_method_on_post
# Do something here
end
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何在方法中引用当前实例化的Post对象?
编辑:所以澄清假设我想这样做:
def some_method_on_post
post.some_property = foo
end
Run Code Online (Sandbox Code Playgroud)
我是指post自己吗?
我对以下内容缺乏了解:如果我使用"速记"创建内部类的实例,那么访问外部类是一个坏主意,即使我没有创建它的显式实例?
例如,请考虑以下代码:
class OuterClass
{
int i;
OuterClass() { i = 2; }
class InnerClass
{
int get_parent_i() { return (OuterClass.this.i); }
}
}
Run Code Online (Sandbox Code Playgroud)
以下编译并返回预期结果(2):
OuterClass.InnerClass ic = new OuterClass().new InnerClass();
System.out.println(ic.get_parent_i());
Run Code Online (Sandbox Code Playgroud)
我的困惑源于这样一个事实:我没有显式创建一个OuterClass对象来实例化一个InnerClass对象,尽管似乎无论如何都存在.有人可以告诉我发生了什么,如果我出于任何原因要么访问或忘记幻影实例?
非常感谢!
我试图制作一个简单的图形结构,我写了以下内容.但温室气体引起了错误,我堆积在那里.这是我第一次制作自己的类型类,所以也许我做的事情非常糟糕.有人可以解释什么是错的吗?
我发现了一个类似的问题,但我不认为它适用于我的情况: 在类型类的实例中错误绑定类型变量
class Link l where
node :: (Node n) => l -> n
class Node n where
links :: (Link l) => n -> [l]
data (Node n) => SimpleLink n =
SimpleLink
{ simpleLinkNode :: n
} deriving (Show, Read, Eq)
instance (Node n) => Link (SimpleLink n) where
node = simpleLinkNode
data (Link l) => SimpleNode l =
SimpleNode
{ simpleNodeLinks :: [l]
} deriving (Show, Read, Eq)
instance (Link l) => Node (SimpleNode l) where …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方法来获取本征类的实例,因为每个本征类只有一个实例.
我可以通过ObjectSpace来测试每个本征类,但我猜它很昂贵.
奇怪的是,我必须得到每个对象的本征类来测试匹配,因为is_a?这还不够:
class A; end
class B < A; end
AA = class << A; self; end
p A.is_a? AA #=> true
p B.is_a? AA #=> true!!!!
Run Code Online (Sandbox Code Playgroud)
我希望有一个Class#instance或Class#instances方法来获取类(或本征类)的实例.
最直接的方法是从特征类中提取实例inspect,但我想知道我是否可以依赖它:
p AA #=> #<Class:A>
instance = Object.const_get(AA.inspect.match(/^#<Class:(\w+)>$/)[1])
p instance #=> A
# (this works for class' eigenclass)
Run Code Online (Sandbox Code Playgroud)
我的用例是我必须得到类方法的类,但是Method#owner给了我本征类,并Method#receiver给了我当前的接收器:
# Continuing previous example
def A.f; end
mtd = B.method(:f)
p mtd.owner #=> #<Class:A>
p mtd.receiver #=> B
# I …Run Code Online (Sandbox Code Playgroud) WPF应用程序是否可以检查应用程序的任何其他实例是否正在运行?我正在创建一个应该只有一个实例的应用程序,当用户再次尝试打开它时,它会提示"另一个实例正在运行"的消息.
我猜我必须检查进程日志以匹配我的应用程序名称,但我不知道如何去做.
我创建了一个为每个实例生成不同名称的类,但是在一个语句中实例化两个实例时,测试意外失败.
这是班级.
class Robot
attr_accessor :name
@@current_name = 'AA000'
def initialize
@name = @@current_name
@@current_name.next!
end
end
Run Code Online (Sandbox Code Playgroud)
这里的类表现如预期
irb(main):009:0> Robot.new.name
=> "AA001"
irb(main):010:0> Robot.new.name
=> "AA002"
Run Code Online (Sandbox Code Playgroud)
这是我所期待的意外行为false.这段代码正在测试我试图通过的练习,所以我不能改变测试.
irb(main):011:0> Robot.new.name == Robot.new.name
=> true
Run Code Online (Sandbox Code Playgroud)
检查object_id显示正在创建两个不同的实例.
irb(main):012:0> Robot.new.object_id == Robot.new.object_id
=> false
Run Code Online (Sandbox Code Playgroud)
为什么Ruby会这样做,我该怎么做才能修复它并假设有一个术语,我可以在搜索中键入什么来查找有关此问题的已回答问题.
我在大学服务器上创建了一个ubuntu实例.我已经安装了NodeJS和NPM,可以通过FTP连接发送文件.
我将以下NodeJS webserver文件发送到我的intance并希望在实例ip-adress上运行它.
var http = require(“http“);
http.createServer(function(request, response) {
response.writeHead(200, {‚content-type’: ‚text/plain‚});
response.write(‘Hello World’);
response.end;
}).listen(3000‚141.28.107.7);
console.log(“server is running“);
Run Code Online (Sandbox Code Playgroud)
当我运行此文件时
sudo nodejs server.js
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
sudo: unable to resolve host nodejs
/home/robin/files/webserver.js:1
(function (exports, require, module, __filename, __dirname) { var http = require(“http“);
^
SyntaxError: Unexpected token ILLEGAL
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:387:25)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Function.Module.runMain (module.js:447:10)
at startup (node.js:148:18)
at node.js:405:3
Run Code Online (Sandbox Code Playgroud)
我在推理中的错误在哪里?谢谢!
我想在amazon-ec2 AMI instance.i上更改我的默认php.ini文件配置.我可以使用putty和filezila访问我的任何实例.