考虑以下情况:
typedef boost::shared_ptr<B> BPtr;
class A
{
public:
A() { b_ptr = BPtr(new B); }
void a_func() { C::c_func(b_ptr); }
private:
BPtr b_ptr;
}
class B
{
public:
B() { b_ptr = BPtr(this); }
void b_func() { C::c_func(b_ptr); }
private:
BPtr b_ptr;
}
class C
{
public:
static void c_func(BPtr b_ptr) { /*...*/ }
}
Run Code Online (Sandbox Code Playgroud)
可以用shared实例化shared_ptr this吗?
是否可以让两个shared_ptr对象指向同一个对象?(例如A :: b_ptr和B :: b_ptr)
如果这两个中的一个超出范围 - B的实例是否会被删除?
我猜我在做一些根本错误的事情.
我还考虑过将b_ptr的依赖注入用于B的构造函数,但这似乎也是非常错误的.
更新:
澄清 - A和B都需要使用C :: c_func.反过来,经过一些处理后,C需要在B中调用一个我没有在上面指定的回调函数.实际上有两个案例很有意思:
任何人都可以告诉我如何创建具有不同登录的Skype的多个实例.(imo.im例如允许多个Skype用户登录和聊天).通过某种方式我读到使用Dbus-skype客户端它是可能的但我不知道如何确切地说它的可能.Skype API只适用于手动登录skype客户端后的单个用户,但我需要多个用户.任何想法,请帮助我.
对于我的应用程序,我想要有一些相同视图控制器的不同实例.现在,我只是创建一个这样的新实例:
iSafeViewController *tab = [[iSafeViewController alloc] init];
[tab setModalPresentationStyle:UIModalPresentationFullScreen];
[tab setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentViewController:tab animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
大.既然这是在iSafeViewController类中完成的,我还有另一个按钮,它当前只是关闭堆栈中的最新控制器.
- (IBAction)closeTab:(id)sender {
[self dismissViewControllerAnimated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)
但是,我真的希望能够回到这些实例.所以,我有两个问题.
并dismissViewControllerAnimated从内存中删除该控制器的实例.如果没有,有没有办法可以重新呈现它.
那么可能有更好的方法来浏览viewController实例presentViewControllerAnimated.至少,是否有更好的方法来创建一个viewController的新实例,并能够导航到每个实例,希望不在堆栈中.换句话说,如果有三个viewController实例,有没有办法可以从第三个实例转到主实例?
任何想法,将不胜感激.谢谢.
我总是想知道如何制作一个包含多个JFrame的程序.我的意思是我只想要一个类来处理所有的GUI和东西,但我怎么能有效地做到这一点?很多教程都说我们通过继承JFrame来制作JFrame.但如果我想要很多帧呢?
例如:带有一些选项的一帧中的应用程序标题菜单是一帧主要工作应用程序是一帧像游戏中一样.
但我不确定我是否与JPanel有关?我对2完全感到困惑.我只想要一个不移动的框架,但基本上框架的内容正在发生变化.例如,当我点击START时,它将变为框架的游戏风格.
如何在不退出整个应用程序的情况下基于该特定帧内的JPanel上的模拟退出特定帧?
在我的主类中,我有一个Frame()方法
public void FightFrame(String offensemsg){
JFrame frame = new JFrame("BattleView: ");
frame.setLayout(new BorderLayout());
FightScene sc = new FightScene();
frame.add(sc);
frame.setVisible(true);
frame.setSize(652, 480);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
sc.GenerateScene(offensemsg);
}
Run Code Online (Sandbox Code Playgroud)
在我的FightScene类中,我正在绘制一个fightscene,该类也有checkCollision()方法
public void checkCollisions() {
for (int i = 0; i < defense.size(); i++) {
FriendlyEntity m = (FriendlyEntity) defense.get(i);
Rectangle r1 = m.getBounds();
for (int j = 0; j<offense.size(); j++) {
Enemy a = (Enemy) offense.get(j);
Rectangle r2 = a.getBounds();
if (r1.intersects(r2)) {
m.setHealth(-1);
a.setHealth(-1);
if(a.getHealth()==0){
a.setVisible(false);
} else if(m.getHealth()==0){
m.setVisible(false);
} …Run Code Online (Sandbox Code Playgroud) 我在xcode中创建了一个自定义类:PaperPack并定义了2个即时变量:title和author-
然后我分配2个类的实例,如下所示:
PaperPack *pack1 = [[PaperPack alloc] init];
pack1.title = @"Title 1";
pack1.author = @"Author";
PaperPack *pack2 = [[PaperPack alloc] init];
pack1.title = @"Title 2";
pack1.author = @"Author";
Run Code Online (Sandbox Code Playgroud)
那么我如何计算和返回我用该类创建的实例数?
我有一个叫做的课Points,我需要创造100分.我需要做类似的事情:
class Point(object)
...
for i in range(1,100):
pi = Point()
Run Code Online (Sandbox Code Playgroud)
点应该被命名为p1,p2,...p100
显然,上面的行不起作用.
问题是:我知道我可以exec在循环内部使用创建100个点但是有没有更好的方法可以不使用exec?
我有两个脚本需要相同版本的Ruby.但是,每个脚本还需要一个不同版本的gem(nokogiri).其中一个脚本将使用两个版本的nokogiri(1.6.2.1和1.6.1)运行.但是,另一个脚本只能运行1.6.1版本; 如果安装了1.6.2.1,脚本将无法正常执行.
我知道如何使用rbenv安装多个版本的Ruby.但是可以安装SAME版本的Ruby(2.1.2)的多个实例吗?如果是这样,怎么样?
护照很棒.我现在发现我对如何处理会话有一些问题.我一定是错了.
一切都适用于我登录+会话+用户数据我存储在我的数据库中.但是我发现当我转移到生产环境(具有多个服务器的EC2上的云)时,我每次都会丢失登录会话.这对我来说很清楚 - 可能会发生,因为会话对每个服务器都是唯一的.
所以我的问题是 - 如何解决这个问题...我想我需要在用户的浏览器上存储我自己的cookie?
这是否意味着我根本不能使用express.session?
谢谢,伊兰
I\xe2\x80\x99m 尝试动态加载同一组件的多个实例,当用户提交表单时,新组件将添加/加载到屏幕上。其背后的想法是,用户可以提供表单的详细信息,然后将其显示在所创建的组件的特定实例上。
\n我最初的想法是拥有某种数据结构,例如键对值的数组或映射,这样当用户提交表单时,我可以将组件的新实例与表单数据一起添加到我的数据结构中。然后 Angular 可以以某种方式显示驻留在数据结构中的组件的每个实例,如下图所示:
\n\n需要注意的是,该表单实际上是它自己的独立组件,以模式对话框的形式存在。当按下绿色的“添加状态框”按钮时,将打开此表单对话框,然后用户可以提交表单并(希望)能够使用提交的表单提供的数据创建状态框组件的新实例。
\n然而这被证明是困难的,目前我\xe2\x80\x99m 在上面的屏幕截图中实现这一点的方法是仅在 app.component.html 中单独显示每个组件,它根本不是动态的,并且具有无用户控制:
\n<app-header></app-header>\n<div class=\'status-box-container\'>\n <app-status-box></app-status-box> //component I\xe2\x80\x99m trying to display\n <app-status-box></app-status-box> //component I\xe2\x80\x99m trying to display\n <app-status-box></app-status-box> //component I\xe2\x80\x99m trying to display\n</div>\nRun Code Online (Sandbox Code Playgroud)\n我\xe2\x80\x99已经遵循了一些教程,但是所述教程的结果\xe2\x80\x99t完全不符合我\xe2\x80\x99m的要求,\xe2\x80\x99根本不起作用,或者它\xe2\x80\x99 对我来说太复杂了,无法理解。
\n首先,我尝试遵循Angular 网站上的官方指南,但这一次仅显示一个组件,并且每 3 秒动态更改其内容,而不是同时显示一个组件的多个实例。
\n接下来,我尝试从这个现有的堆栈溢出问题中跟踪这个 stackblitz,但我发现这不起作用并且非常复杂,其中大部分我不理解\xe2\x80\x99。尽管它\xe2\x80\x99s非常接近我\xe2\x80\x99m试图实现的目标。
\n最后,我尝试遵循我发现的 stackblitz,但它\xe2\x80\x99s 并不像我希望的那样动态,因为组件的每个实例都被硬编码到不同的变量中,我也无法让它工作。
\n但我注意到的一件事是,所有三种方法都有两个共同点。首先在app.component.html中,他们使用<ng-container #messageContainer></ng-container>或<ng-template #messageContainer></ng-template>。据我了解,这是将动态组件加载到 …
forms multiple-instances angular-components angular angular-dynamic-components
instance ×2
java ×2
jframe ×2
objective-c ×2
swing ×2
angular ×1
c++ ×1
cloud ×1
cocoa-touch ×1
counter ×1
forms ×1
instances ×1
ios ×1
jpanel ×1
node.js ×1
oop ×1
passport.js ×1
python ×1
rbenv ×1
ruby ×1
session ×1
shared-ptr ×1
skype ×1
skype4java ×1
this ×1