小编Adr*_*ian的帖子

C++ OOP测验问题

我正在做一个C++测验,我需要在下面的代码中说明什么错误:

class Base {
    friend class SubClass;
    int n;
    virtual int getN()
    {
        return n;
    }
};

class SubClass: public Base {
public:
    SubClass() {}
    SubClass(const SubClass& s) {}
};

int main()
{
    SubClass sc;
    if(sc.getN() <= 5)
    {
        int x = sc.getN();
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

除了n是没有资源的,也许应该通过Base类指针创建对象,还有什么可能是错的?
当我运行它时,我收到此错误:

 error: 'virtual int Base::getN()' is private
Run Code Online (Sandbox Code Playgroud)

c++

6
推荐指数
1
解决办法
1764
查看次数

在XAML中设置DataContext

我有这个简单的应用程序,它将一些项添加到组合框:

public partial class Window1 : Window
    {
        private ObservableCollection<string> _dropDownValues = new ObservableCollection<string>();
        public ObservableCollection<string> DropDownValues
        {
            get { return _dropDownValues; }
            set { _dropDownValues = value; }
        }

        private string _selectedValue;
        public string SelectedValue
        {
            get { return _selectedValue; }
            set { _selectedValue = value; }
        }

        public Window1()
        {
            InitializeComponent();
            DataContext = this;

            DropDownValues.Add("item1");
            DropDownValues.Add("item1");
            DropDownValues.Add("item1");
            DropDownValues.Add("item1");
            DropDownValues.Add("item1");
            DropDownValues.Add("item1");
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是XAML文件:

<Window x:Class="WpfApplication2.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <StackPanel HorizontalAlignment="Left" Margin="10">
        <ComboBox
            Margin="0 0 0 5" …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml

6
推荐指数
1
解决办法
2万
查看次数

不能使用Boost.Asio的可移动对象

读到这个,我得到的印象是这段代码应该有效:

class Connection : public std::enable_shared_from_this<Connection>
{
public:
    Connection(tcp::socket&& socket) : socket_(std::move(socket)) {}
private:
    tcp::socket socket_;
};
Run Code Online (Sandbox Code Playgroud)

但编译器在构造函数中发出此错误:

Call to implicitly-deleted copy constructor of 'tcp::socket' (aka'basic_stream_socket<boost::asio::ip::tcp>')
Run Code Online (Sandbox Code Playgroud)

我也定义了BOOST_ASIO_HAS_MOVE.我使用Xcode 4.6.3并在编译器设置中定义了这个:

C++ Language dialect: GNU++11[-std=gnu++11]
C++ Standard Library: libc++(LLVM C++ standard library with C++11 support)
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-asio c++11

6
推荐指数
1
解决办法
1553
查看次数

如何拆除核心数据堆栈?

我想为我的Core Data应用程序添加单元测试,但我确定如何重置测试之间的上下文.

这是我的CoreDataStack目标:

public final class CoreDataStack {
    var storeType: StoreType!
    public init(storeType: StoreType) {
        self.storeType = storeType
    }

    lazy var persistentContainer: NSPersistentContainer = {
        let container = NSPersistentContainer(name: "Transaction")
        container.loadPersistentStores(completionHandler: { (description, error) in
            if let error = error {
                fatalError("Unresolved error \(error), \(error.localizedDescription)")
            } else {
                description.type = self.storeType.type

            }
        })

        return container
    }()

    public var context: NSManagedObjectContext {
        return persistentContainer.viewContext
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是我在测试中使用它的方式:

class PaymentTests: XCTestCase {

    var context: NSManagedObjectContext!

    override func setUp() {
        super.setUp() …
Run Code Online (Sandbox Code Playgroud)

core-data ios xctest swift swift3

6
推荐指数
2
解决办法
1151
查看次数

对于Xcode 9中的上下文中的类型查找,"对象"不明确

我想为IOS 11更新我的应用程序,并遇到此问题.这是我目前的代码:

protocol DataSourceDelegate: class {
    associatedtype Object

    func cellIdentifierForObject(object: Object) -> String
    func swipeToDeleteObject(object: Object)
}
Run Code Online (Sandbox Code Playgroud)

此协议用于我的一个视图控制器:

extension TransactionsViewController: DataSourceDelegate {
    func cellIdentifierForObject(object: Object) -> String {
        return "Cell"
    }

    func swipeToDeleteObject(object: Object) {
        object.managedObjectContext?.performChanges {
            object.managedObjectContext?.delete(object)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我得到了这个Object类型的错误:

在此上下文中,"对象"对于类型查找是不明确的

在这一行:

func cellIdentifierForObject(object: Object) -> String { ... }
Run Code Online (Sandbox Code Playgroud)

出现此问题是因为我的项目中还有其他一些Object类型.我试图将协议或类名放在名称前面,但我仍然会收到错误.

xcode ios swift ios11

6
推荐指数
1
解决办法
4035
查看次数

IBDesignablesAgentCocoaTouch和Interface Builder Cocoa Touch Tool正在吃我的CPU

有谁知道这两个是什么,IBDesignablesAgentCocoaTouch并且Interface Builder Cocoa Touch Tool正在做什么?

每次我打开Xcode这两个都使用了太多的CPU,我的粉丝才能达到最大速度.

我目前正在使用Xcode 9 beta 5.不确定这些都是从beta 5还是beta 4开始的.

我能做些什么来阻止他们使用这么多CPU吗?

xcode ios

6
推荐指数
1
解决办法
689
查看次数

在注册表中设置DWORD值

我正在尝试在注册表中设置DWORD值.我使用文本值,但现在我想用数字(0)设置另一个值.但它并没有写出来.
这是我的代码:

RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\pager", 0, KEY_ALL_ACCESS, &hKey);
RegSetValueEx(hKey, TEXT("Save"), 0, REG_SZ, (const BYTE*)0x00, sizeof(DWORD));
RegCloseKey(hKey);
Run Code Online (Sandbox Code Playgroud)

PS:密钥已经存在,值为1,所以我试图用值0覆盖它(我没有创建一个新的).

c++ windows registry winapi

5
推荐指数
1
解决办法
2万
查看次数

默认构造函数C++

让我们说我有这个课程:

class X {
public:
    int x;
};
Run Code Online (Sandbox Code Playgroud)

我看到如果我在本地创建一个X实例,x将不会初始化为0,只有我全局创建它.
这是否意味着默认构造函数不是由编译器合成的(我怀疑)对于创建localy的对象,或者它将被合成但不是x值的零,如果是这种情况,为什么会这样?

c++

5
推荐指数
1
解决办法
1618
查看次数

使用std :: transform将字符串转换为所有大写字母

我正在使用变换算法和std :: toupper来实现这一点,但这可以在一行中完成,像这样吗?

transform(s.begin(), s.end(), ostream_iterator<string>(cout, "\n"),std::toupper);
Run Code Online (Sandbox Code Playgroud)

我得到错误,所以我必须为此创建一个函数并使用transform调用它,或者我可以使用一些适配器?

c++ stl

5
推荐指数
1
解决办法
1646
查看次数

如何将枚举数组转换为整数数组

我正在使用 Core Data 并且我的谓词之一根据以下枚举检索数据:

enum Period : Int {
   Daily
   Weekly
   Monthly
}
Run Code Online (Sandbox Code Playgroud)

我的谓词是这样的:

public static func byTypePredicate(periods: [Int]) -> NSPredicate {
    return NSPredicate(format: "period IN %@", periods)
}
Run Code Online (Sandbox Code Playgroud)

我的问题是我不想Int's在调用这个谓词时使用,我想传递Period枚举,但在谓词内部必须将其转换Int为使其工作。

有没有快速转换的方法?

ios swift

5
推荐指数
1
解决办法
671
查看次数

标签 统计

c++ ×5

ios ×4

swift ×3

xcode ×2

boost ×1

boost-asio ×1

c# ×1

c++11 ×1

core-data ×1

ios11 ×1

registry ×1

stl ×1

swift3 ×1

winapi ×1

windows ×1

wpf ×1

xaml ×1

xctest ×1